package org.waml.w3c.webidl.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.xtext.parsetree.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import org.waml.w3c.webidl.services.WebIDLGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
@SuppressWarnings("all")
public class InternalWebIDLParser extends AbstractInternalContentAssistParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'OverrideBuiltins'", "'void'", "'boolean'", "'byte'", "'double'", "'float'", "'short'", "'long'", "'Object'", "'object'", "'any'", "'octet'", "'DOMString'", "'import'", "';'", "'typedef'", "'sequence<'", "'>'", "'::'", "'Constructor'", "'('", "')'", "','", "'NamedConstructor'", "'='", "'Callback'", "'NoInterfaceObject'", "'PrototypeRoot'", "'PutForwards'", "'TreatNullAs'", "'EmptyString'", "'TreatUndefinedAs'", "'AllowAny'", "'Replaceable'", "'Supplemental'", "'ReplaceableNamedProperties'", "'implements'", "'module'", "'{'", "'}'", "'['", "']'", "'Prefix'", "'NamespaceObject'", "'interface'", "':'", "'raises'", "'getter'", "'setter'", "'creator'", "'deleter'", "'caller'", "'readonly'", "'attribute'", "'getraises'", "'setraises'", "'exception'", "'const'", "'0x'", "'[]'", "'unsigned'", "'?'", "'FunctionOnly'", "'PropertyOnly'", "'null'", "'stringifier'", "'omittable'", "'in'", "'optional'", "'...'"
    };
    public static final int T__68=68;
    public static final int T__69=69;
    public static final int RULE_ID=4;
    public static final int T__66=66;
    public static final int T__67=67;
    public static final int T__64=64;
    public static final int T__29=29;
    public static final int T__65=65;
    public static final int T__28=28;
    public static final int T__62=62;
    public static final int T__27=27;
    public static final int T__63=63;
    public static final int T__26=26;
    public static final int T__25=25;
    public static final int T__24=24;
    public static final int T__23=23;
    public static final int T__22=22;
    public static final int RULE_ANY_OTHER=10;
    public static final int T__21=21;
    public static final int T__20=20;
    public static final int T__61=61;
    public static final int T__60=60;
    public static final int EOF=-1;
    public static final int T__55=55;
    public static final int T__56=56;
    public static final int T__19=19;
    public static final int T__57=57;
    public static final int T__58=58;
    public static final int T__51=51;
    public static final int T__16=16;
    public static final int T__52=52;
    public static final int T__15=15;
    public static final int T__53=53;
    public static final int T__18=18;
    public static final int T__54=54;
    public static final int T__17=17;
    public static final int T__12=12;
    public static final int T__11=11;
    public static final int T__14=14;
    public static final int T__13=13;
    public static final int T__59=59;
    public static final int RULE_INT=6;
    public static final int T__50=50;
    public static final int T__42=42;
    public static final int T__43=43;
    public static final int T__40=40;
    public static final int T__41=41;
    public static final int T__80=80;
    public static final int T__46=46;
    public static final int T__47=47;
    public static final int T__44=44;
    public static final int T__45=45;
    public static final int T__48=48;
    public static final int T__49=49;
    public static final int RULE_SL_COMMENT=8;
    public static final int RULE_ML_COMMENT=7;
    public static final int T__30=30;
    public static final int T__31=31;
    public static final int RULE_STRING=5;
    public static final int T__32=32;
    public static final int T__71=71;
    public static final int T__33=33;
    public static final int T__72=72;
    public static final int T__34=34;
    public static final int T__35=35;
    public static final int T__70=70;
    public static final int T__36=36;
    public static final int T__37=37;
    public static final int T__38=38;
    public static final int T__39=39;
    public static final int RULE_WS=9;
    public static final int T__76=76;
    public static final int T__75=75;
    public static final int T__74=74;
    public static final int T__73=73;
    public static final int T__79=79;
    public static final int T__78=78;
    public static final int T__77=77;

    // delegates
    // delegators


        public InternalWebIDLParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalWebIDLParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalWebIDLParser.tokenNames; }
    public String getGrammarFileName() { return "../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g"; }


     
     	private WebIDLGrammarAccess grammarAccess;
     	
        public void setGrammarAccess(WebIDLGrammarAccess grammarAccess) {
        	this.grammarAccess = grammarAccess;
        }
        
        @Override
        protected Grammar getGrammar() {
        	return grammarAccess.getGrammar();
        }
        
        @Override
        protected String getValueForTokenName(String tokenName) {
        	return tokenName;
        }




    // $ANTLR start "entryRuleIDLDefinitions"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:62:1: entryRuleIDLDefinitions : ruleIDLDefinitions EOF ;
    public final void entryRuleIDLDefinitions() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:63:1: ( ruleIDLDefinitions EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:64:1: ruleIDLDefinitions EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIDLDefinitionsRule()); 
            }
            pushFollow(FOLLOW_ruleIDLDefinitions_in_entryRuleIDLDefinitions67);
            ruleIDLDefinitions();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getIDLDefinitionsRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleIDLDefinitions74); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleIDLDefinitions"


    // $ANTLR start "ruleIDLDefinitions"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:71:1: ruleIDLDefinitions : ( ( rule__IDLDefinitions__Group__0 ) ) ;
    public final void ruleIDLDefinitions() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:75:2: ( ( ( rule__IDLDefinitions__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:76:1: ( ( rule__IDLDefinitions__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:76:1: ( ( rule__IDLDefinitions__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:77:1: ( rule__IDLDefinitions__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIDLDefinitionsAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:78:1: ( rule__IDLDefinitions__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:78:2: rule__IDLDefinitions__Group__0
            {
            pushFollow(FOLLOW_rule__IDLDefinitions__Group__0_in_ruleIDLDefinitions100);
            rule__IDLDefinitions__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getIDLDefinitionsAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleIDLDefinitions"


    // $ANTLR start "entryRuleImport"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:90:1: entryRuleImport : ruleImport EOF ;
    public final void entryRuleImport() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:91:1: ( ruleImport EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:92:1: ruleImport EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getImportRule()); 
            }
            pushFollow(FOLLOW_ruleImport_in_entryRuleImport127);
            ruleImport();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getImportRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleImport134); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleImport"


    // $ANTLR start "ruleImport"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:99:1: ruleImport : ( ( rule__Import__Group__0 ) ) ;
    public final void ruleImport() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:103:2: ( ( ( rule__Import__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:104:1: ( ( rule__Import__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:104:1: ( ( rule__Import__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:105:1: ( rule__Import__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getImportAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:106:1: ( rule__Import__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:106:2: rule__Import__Group__0
            {
            pushFollow(FOLLOW_rule__Import__Group__0_in_ruleImport160);
            rule__Import__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getImportAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleImport"


    // $ANTLR start "entryRuleTypeDef"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:118:1: entryRuleTypeDef : ruleTypeDef EOF ;
    public final void entryRuleTypeDef() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:119:1: ( ruleTypeDef EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:120:1: ruleTypeDef EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeDefRule()); 
            }
            pushFollow(FOLLOW_ruleTypeDef_in_entryRuleTypeDef187);
            ruleTypeDef();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeDefRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTypeDef194); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTypeDef"


    // $ANTLR start "ruleTypeDef"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:127:1: ruleTypeDef : ( ( rule__TypeDef__Group__0 ) ) ;
    public final void ruleTypeDef() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:131:2: ( ( ( rule__TypeDef__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:132:1: ( ( rule__TypeDef__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:132:1: ( ( rule__TypeDef__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:133:1: ( rule__TypeDef__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeDefAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:134:1: ( rule__TypeDef__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:134:2: rule__TypeDef__Group__0
            {
            pushFollow(FOLLOW_rule__TypeDef__Group__0_in_ruleTypeDef220);
            rule__TypeDef__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeDefAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTypeDef"


    // $ANTLR start "entryRuleTypeRef"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:146:1: entryRuleTypeRef : ruleTypeRef EOF ;
    public final void entryRuleTypeRef() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:147:1: ( ruleTypeRef EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:148:1: ruleTypeRef EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeRefRule()); 
            }
            pushFollow(FOLLOW_ruleTypeRef_in_entryRuleTypeRef247);
            ruleTypeRef();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeRefRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTypeRef254); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTypeRef"


    // $ANTLR start "ruleTypeRef"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:155:1: ruleTypeRef : ( ( rule__TypeRef__Alternatives ) ) ;
    public final void ruleTypeRef() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:159:2: ( ( ( rule__TypeRef__Alternatives ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:160:1: ( ( rule__TypeRef__Alternatives ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:160:1: ( ( rule__TypeRef__Alternatives ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:161:1: ( rule__TypeRef__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeRefAccess().getAlternatives()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:162:1: ( rule__TypeRef__Alternatives )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:162:2: rule__TypeRef__Alternatives
            {
            pushFollow(FOLLOW_rule__TypeRef__Alternatives_in_ruleTypeRef280);
            rule__TypeRef__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeRefAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTypeRef"


    // $ANTLR start "entryRuleUserTypeRef"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:174:1: entryRuleUserTypeRef : ruleUserTypeRef EOF ;
    public final void entryRuleUserTypeRef() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:175:1: ( ruleUserTypeRef EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:176:1: ruleUserTypeRef EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUserTypeRefRule()); 
            }
            pushFollow(FOLLOW_ruleUserTypeRef_in_entryRuleUserTypeRef307);
            ruleUserTypeRef();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUserTypeRefRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleUserTypeRef314); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleUserTypeRef"


    // $ANTLR start "ruleUserTypeRef"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:183:1: ruleUserTypeRef : ( ( rule__UserTypeRef__TypeAssignment ) ) ;
    public final void ruleUserTypeRef() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:187:2: ( ( ( rule__UserTypeRef__TypeAssignment ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:188:1: ( ( rule__UserTypeRef__TypeAssignment ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:188:1: ( ( rule__UserTypeRef__TypeAssignment ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:189:1: ( rule__UserTypeRef__TypeAssignment )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUserTypeRefAccess().getTypeAssignment()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:190:1: ( rule__UserTypeRef__TypeAssignment )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:190:2: rule__UserTypeRef__TypeAssignment
            {
            pushFollow(FOLLOW_rule__UserTypeRef__TypeAssignment_in_ruleUserTypeRef340);
            rule__UserTypeRef__TypeAssignment();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getUserTypeRefAccess().getTypeAssignment()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleUserTypeRef"


    // $ANTLR start "entryRulePrimitiveTypeRef"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:204:1: entryRulePrimitiveTypeRef : rulePrimitiveTypeRef EOF ;
    public final void entryRulePrimitiveTypeRef() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:205:1: ( rulePrimitiveTypeRef EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:206:1: rulePrimitiveTypeRef EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimitiveTypeRefRule()); 
            }
            pushFollow(FOLLOW_rulePrimitiveTypeRef_in_entryRulePrimitiveTypeRef369);
            rulePrimitiveTypeRef();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimitiveTypeRefRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRulePrimitiveTypeRef376); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulePrimitiveTypeRef"


    // $ANTLR start "rulePrimitiveTypeRef"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:213:1: rulePrimitiveTypeRef : ( ( rule__PrimitiveTypeRef__Group__0 ) ) ;
    public final void rulePrimitiveTypeRef() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:217:2: ( ( ( rule__PrimitiveTypeRef__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:218:1: ( ( rule__PrimitiveTypeRef__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:218:1: ( ( rule__PrimitiveTypeRef__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:219:1: ( rule__PrimitiveTypeRef__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimitiveTypeRefAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:220:1: ( rule__PrimitiveTypeRef__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:220:2: rule__PrimitiveTypeRef__Group__0
            {
            pushFollow(FOLLOW_rule__PrimitiveTypeRef__Group__0_in_rulePrimitiveTypeRef402);
            rule__PrimitiveTypeRef__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimitiveTypeRefAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulePrimitiveTypeRef"


    // $ANTLR start "entryRuleSequenceType"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:232:1: entryRuleSequenceType : ruleSequenceType EOF ;
    public final void entryRuleSequenceType() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:233:1: ( ruleSequenceType EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:234:1: ruleSequenceType EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequenceTypeRule()); 
            }
            pushFollow(FOLLOW_ruleSequenceType_in_entryRuleSequenceType429);
            ruleSequenceType();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequenceTypeRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleSequenceType436); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleSequenceType"


    // $ANTLR start "ruleSequenceType"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:241:1: ruleSequenceType : ( ( rule__SequenceType__Group__0 ) ) ;
    public final void ruleSequenceType() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:245:2: ( ( ( rule__SequenceType__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:246:1: ( ( rule__SequenceType__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:246:1: ( ( rule__SequenceType__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:247:1: ( rule__SequenceType__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequenceTypeAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:248:1: ( rule__SequenceType__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:248:2: rule__SequenceType__Group__0
            {
            pushFollow(FOLLOW_rule__SequenceType__Group__0_in_ruleSequenceType462);
            rule__SequenceType__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequenceTypeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleSequenceType"


    // $ANTLR start "entryRuleScopedName"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:260:1: entryRuleScopedName : ruleScopedName EOF ;
    public final void entryRuleScopedName() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:261:1: ( ruleScopedName EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:262:1: ruleScopedName EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getScopedNameRule()); 
            }
            pushFollow(FOLLOW_ruleScopedName_in_entryRuleScopedName489);
            ruleScopedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getScopedNameRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleScopedName496); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleScopedName"


    // $ANTLR start "ruleScopedName"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:269:1: ruleScopedName : ( ( rule__ScopedName__Group__0 ) ) ;
    public final void ruleScopedName() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:273:2: ( ( ( rule__ScopedName__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:274:1: ( ( rule__ScopedName__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:274:1: ( ( rule__ScopedName__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:275:1: ( rule__ScopedName__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getScopedNameAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:276:1: ( rule__ScopedName__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:276:2: rule__ScopedName__Group__0
            {
            pushFollow(FOLLOW_rule__ScopedName__Group__0_in_ruleScopedName522);
            rule__ScopedName__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getScopedNameAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleScopedName"


    // $ANTLR start "entryRuleConstructor"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:290:1: entryRuleConstructor : ruleConstructor EOF ;
    public final void entryRuleConstructor() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:291:1: ( ruleConstructor EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:292:1: ruleConstructor EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstructorRule()); 
            }
            pushFollow(FOLLOW_ruleConstructor_in_entryRuleConstructor551);
            ruleConstructor();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstructorRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleConstructor558); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleConstructor"


    // $ANTLR start "ruleConstructor"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:299:1: ruleConstructor : ( ( rule__Constructor__Group__0 ) ) ;
    public final void ruleConstructor() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:303:2: ( ( ( rule__Constructor__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:304:1: ( ( rule__Constructor__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:304:1: ( ( rule__Constructor__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:305:1: ( rule__Constructor__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstructorAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:306:1: ( rule__Constructor__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:306:2: rule__Constructor__Group__0
            {
            pushFollow(FOLLOW_rule__Constructor__Group__0_in_ruleConstructor584);
            rule__Constructor__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstructorAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleConstructor"


    // $ANTLR start "entryRuleNamedConstructor"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:318:1: entryRuleNamedConstructor : ruleNamedConstructor EOF ;
    public final void entryRuleNamedConstructor() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:319:1: ( ruleNamedConstructor EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:320:1: ruleNamedConstructor EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamedConstructorRule()); 
            }
            pushFollow(FOLLOW_ruleNamedConstructor_in_entryRuleNamedConstructor611);
            ruleNamedConstructor();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamedConstructorRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleNamedConstructor618); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleNamedConstructor"


    // $ANTLR start "ruleNamedConstructor"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:327:1: ruleNamedConstructor : ( ( rule__NamedConstructor__Group__0 ) ) ;
    public final void ruleNamedConstructor() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:331:2: ( ( ( rule__NamedConstructor__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:332:1: ( ( rule__NamedConstructor__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:332:1: ( ( rule__NamedConstructor__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:333:1: ( rule__NamedConstructor__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamedConstructorAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:334:1: ( rule__NamedConstructor__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:334:2: rule__NamedConstructor__Group__0
            {
            pushFollow(FOLLOW_rule__NamedConstructor__Group__0_in_ruleNamedConstructor644);
            rule__NamedConstructor__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamedConstructorAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleNamedConstructor"


    // $ANTLR start "entryRuleCallback"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:346:1: entryRuleCallback : ruleCallback EOF ;
    public final void entryRuleCallback() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:347:1: ( ruleCallback EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:348:1: ruleCallback EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCallbackRule()); 
            }
            pushFollow(FOLLOW_ruleCallback_in_entryRuleCallback671);
            ruleCallback();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCallbackRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleCallback678); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleCallback"


    // $ANTLR start "ruleCallback"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:355:1: ruleCallback : ( ( rule__Callback__Alternatives ) ) ;
    public final void ruleCallback() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:359:2: ( ( ( rule__Callback__Alternatives ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:360:1: ( ( rule__Callback__Alternatives ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:360:1: ( ( rule__Callback__Alternatives ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:361:1: ( rule__Callback__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCallbackAccess().getAlternatives()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:362:1: ( rule__Callback__Alternatives )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:362:2: rule__Callback__Alternatives
            {
            pushFollow(FOLLOW_rule__Callback__Alternatives_in_ruleCallback704);
            rule__Callback__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCallbackAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleCallback"


    // $ANTLR start "entryRuleNoInterfaceObject"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:374:1: entryRuleNoInterfaceObject : ruleNoInterfaceObject EOF ;
    public final void entryRuleNoInterfaceObject() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:375:1: ( ruleNoInterfaceObject EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:376:1: ruleNoInterfaceObject EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNoInterfaceObjectRule()); 
            }
            pushFollow(FOLLOW_ruleNoInterfaceObject_in_entryRuleNoInterfaceObject731);
            ruleNoInterfaceObject();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNoInterfaceObjectRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleNoInterfaceObject738); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleNoInterfaceObject"


    // $ANTLR start "ruleNoInterfaceObject"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:383:1: ruleNoInterfaceObject : ( ( rule__NoInterfaceObject__Group__0 ) ) ;
    public final void ruleNoInterfaceObject() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:387:2: ( ( ( rule__NoInterfaceObject__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:388:1: ( ( rule__NoInterfaceObject__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:388:1: ( ( rule__NoInterfaceObject__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:389:1: ( rule__NoInterfaceObject__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNoInterfaceObjectAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:390:1: ( rule__NoInterfaceObject__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:390:2: rule__NoInterfaceObject__Group__0
            {
            pushFollow(FOLLOW_rule__NoInterfaceObject__Group__0_in_ruleNoInterfaceObject764);
            rule__NoInterfaceObject__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNoInterfaceObjectAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleNoInterfaceObject"


    // $ANTLR start "entryRuleOverrideBuiltins"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:402:1: entryRuleOverrideBuiltins : ruleOverrideBuiltins EOF ;
    public final void entryRuleOverrideBuiltins() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:403:1: ( ruleOverrideBuiltins EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:404:1: ruleOverrideBuiltins EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOverrideBuiltinsRule()); 
            }
            pushFollow(FOLLOW_ruleOverrideBuiltins_in_entryRuleOverrideBuiltins791);
            ruleOverrideBuiltins();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOverrideBuiltinsRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleOverrideBuiltins798); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleOverrideBuiltins"


    // $ANTLR start "ruleOverrideBuiltins"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:411:1: ruleOverrideBuiltins : ( 'OverrideBuiltins' ) ;
    public final void ruleOverrideBuiltins() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:415:2: ( ( 'OverrideBuiltins' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:416:1: ( 'OverrideBuiltins' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:416:1: ( 'OverrideBuiltins' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:417:1: 'OverrideBuiltins'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOverrideBuiltinsAccess().getOverrideBuiltinsKeyword()); 
            }
            match(input,11,FOLLOW_11_in_ruleOverrideBuiltins825); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOverrideBuiltinsAccess().getOverrideBuiltinsKeyword()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleOverrideBuiltins"


    // $ANTLR start "entryRulePrototypeRoot"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:432:1: entryRulePrototypeRoot : rulePrototypeRoot EOF ;
    public final void entryRulePrototypeRoot() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:433:1: ( rulePrototypeRoot EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:434:1: rulePrototypeRoot EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrototypeRootRule()); 
            }
            pushFollow(FOLLOW_rulePrototypeRoot_in_entryRulePrototypeRoot853);
            rulePrototypeRoot();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrototypeRootRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRulePrototypeRoot860); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulePrototypeRoot"


    // $ANTLR start "rulePrototypeRoot"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:441:1: rulePrototypeRoot : ( ( rule__PrototypeRoot__Group__0 ) ) ;
    public final void rulePrototypeRoot() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:445:2: ( ( ( rule__PrototypeRoot__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:446:1: ( ( rule__PrototypeRoot__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:446:1: ( ( rule__PrototypeRoot__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:447:1: ( rule__PrototypeRoot__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrototypeRootAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:448:1: ( rule__PrototypeRoot__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:448:2: rule__PrototypeRoot__Group__0
            {
            pushFollow(FOLLOW_rule__PrototypeRoot__Group__0_in_rulePrototypeRoot886);
            rule__PrototypeRoot__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrototypeRootAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulePrototypeRoot"


    // $ANTLR start "entryRulePutForwards"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:460:1: entryRulePutForwards : rulePutForwards EOF ;
    public final void entryRulePutForwards() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:461:1: ( rulePutForwards EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:462:1: rulePutForwards EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPutForwardsRule()); 
            }
            pushFollow(FOLLOW_rulePutForwards_in_entryRulePutForwards913);
            rulePutForwards();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPutForwardsRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRulePutForwards920); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulePutForwards"


    // $ANTLR start "rulePutForwards"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:469:1: rulePutForwards : ( ( rule__PutForwards__Group__0 ) ) ;
    public final void rulePutForwards() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:473:2: ( ( ( rule__PutForwards__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:474:1: ( ( rule__PutForwards__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:474:1: ( ( rule__PutForwards__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:475:1: ( rule__PutForwards__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPutForwardsAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:476:1: ( rule__PutForwards__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:476:2: rule__PutForwards__Group__0
            {
            pushFollow(FOLLOW_rule__PutForwards__Group__0_in_rulePutForwards946);
            rule__PutForwards__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPutForwardsAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulePutForwards"


    // $ANTLR start "entryRuleTreatNullAs"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:488:1: entryRuleTreatNullAs : ruleTreatNullAs EOF ;
    public final void entryRuleTreatNullAs() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:489:1: ( ruleTreatNullAs EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:490:1: ruleTreatNullAs EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatNullAsRule()); 
            }
            pushFollow(FOLLOW_ruleTreatNullAs_in_entryRuleTreatNullAs973);
            ruleTreatNullAs();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatNullAsRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTreatNullAs980); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTreatNullAs"


    // $ANTLR start "ruleTreatNullAs"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:497:1: ruleTreatNullAs : ( ( rule__TreatNullAs__Group__0 ) ) ;
    public final void ruleTreatNullAs() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:501:2: ( ( ( rule__TreatNullAs__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:502:1: ( ( rule__TreatNullAs__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:502:1: ( ( rule__TreatNullAs__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:503:1: ( rule__TreatNullAs__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatNullAsAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:504:1: ( rule__TreatNullAs__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:504:2: rule__TreatNullAs__Group__0
            {
            pushFollow(FOLLOW_rule__TreatNullAs__Group__0_in_ruleTreatNullAs1006);
            rule__TreatNullAs__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatNullAsAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTreatNullAs"


    // $ANTLR start "entryRuleTreatUndefinedAs"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:516:1: entryRuleTreatUndefinedAs : ruleTreatUndefinedAs EOF ;
    public final void entryRuleTreatUndefinedAs() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:517:1: ( ruleTreatUndefinedAs EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:518:1: ruleTreatUndefinedAs EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatUndefinedAsRule()); 
            }
            pushFollow(FOLLOW_ruleTreatUndefinedAs_in_entryRuleTreatUndefinedAs1033);
            ruleTreatUndefinedAs();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatUndefinedAsRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTreatUndefinedAs1040); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTreatUndefinedAs"


    // $ANTLR start "ruleTreatUndefinedAs"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:525:1: ruleTreatUndefinedAs : ( ( rule__TreatUndefinedAs__Alternatives ) ) ;
    public final void ruleTreatUndefinedAs() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:529:2: ( ( ( rule__TreatUndefinedAs__Alternatives ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:530:1: ( ( rule__TreatUndefinedAs__Alternatives ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:530:1: ( ( rule__TreatUndefinedAs__Alternatives ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:531:1: ( rule__TreatUndefinedAs__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatUndefinedAsAccess().getAlternatives()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:532:1: ( rule__TreatUndefinedAs__Alternatives )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:532:2: rule__TreatUndefinedAs__Alternatives
            {
            pushFollow(FOLLOW_rule__TreatUndefinedAs__Alternatives_in_ruleTreatUndefinedAs1066);
            rule__TreatUndefinedAs__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatUndefinedAsAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTreatUndefinedAs"


    // $ANTLR start "entryRuleAllowAny"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:544:1: entryRuleAllowAny : ruleAllowAny EOF ;
    public final void entryRuleAllowAny() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:545:1: ( ruleAllowAny EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:546:1: ruleAllowAny EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAllowAnyRule()); 
            }
            pushFollow(FOLLOW_ruleAllowAny_in_entryRuleAllowAny1093);
            ruleAllowAny();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAllowAnyRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleAllowAny1100); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleAllowAny"


    // $ANTLR start "ruleAllowAny"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:553:1: ruleAllowAny : ( ( rule__AllowAny__Group__0 ) ) ;
    public final void ruleAllowAny() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:557:2: ( ( ( rule__AllowAny__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:558:1: ( ( rule__AllowAny__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:558:1: ( ( rule__AllowAny__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:559:1: ( rule__AllowAny__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAllowAnyAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:560:1: ( rule__AllowAny__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:560:2: rule__AllowAny__Group__0
            {
            pushFollow(FOLLOW_rule__AllowAny__Group__0_in_ruleAllowAny1126);
            rule__AllowAny__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAllowAnyAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleAllowAny"


    // $ANTLR start "entryRuleReplaceable"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:572:1: entryRuleReplaceable : ruleReplaceable EOF ;
    public final void entryRuleReplaceable() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:573:1: ( ruleReplaceable EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:574:1: ruleReplaceable EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReplaceableRule()); 
            }
            pushFollow(FOLLOW_ruleReplaceable_in_entryRuleReplaceable1153);
            ruleReplaceable();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReplaceableRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleReplaceable1160); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleReplaceable"


    // $ANTLR start "ruleReplaceable"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:581:1: ruleReplaceable : ( ( rule__Replaceable__Group__0 ) ) ;
    public final void ruleReplaceable() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:585:2: ( ( ( rule__Replaceable__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:586:1: ( ( rule__Replaceable__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:586:1: ( ( rule__Replaceable__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:587:1: ( rule__Replaceable__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReplaceableAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:588:1: ( rule__Replaceable__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:588:2: rule__Replaceable__Group__0
            {
            pushFollow(FOLLOW_rule__Replaceable__Group__0_in_ruleReplaceable1186);
            rule__Replaceable__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReplaceableAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleReplaceable"


    // $ANTLR start "entryRuleSupplemental"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:600:1: entryRuleSupplemental : ruleSupplemental EOF ;
    public final void entryRuleSupplemental() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:601:1: ( ruleSupplemental EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:602:1: ruleSupplemental EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSupplementalRule()); 
            }
            pushFollow(FOLLOW_ruleSupplemental_in_entryRuleSupplemental1213);
            ruleSupplemental();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSupplementalRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleSupplemental1220); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleSupplemental"


    // $ANTLR start "ruleSupplemental"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:609:1: ruleSupplemental : ( ( rule__Supplemental__Group__0 ) ) ;
    public final void ruleSupplemental() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:613:2: ( ( ( rule__Supplemental__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:614:1: ( ( rule__Supplemental__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:614:1: ( ( rule__Supplemental__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:615:1: ( rule__Supplemental__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSupplementalAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:616:1: ( rule__Supplemental__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:616:2: rule__Supplemental__Group__0
            {
            pushFollow(FOLLOW_rule__Supplemental__Group__0_in_ruleSupplemental1246);
            rule__Supplemental__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSupplementalAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleSupplemental"


    // $ANTLR start "entryRuleReplaceableNamedProperties"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:628:1: entryRuleReplaceableNamedProperties : ruleReplaceableNamedProperties EOF ;
    public final void entryRuleReplaceableNamedProperties() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:629:1: ( ruleReplaceableNamedProperties EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:630:1: ruleReplaceableNamedProperties EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReplaceableNamedPropertiesRule()); 
            }
            pushFollow(FOLLOW_ruleReplaceableNamedProperties_in_entryRuleReplaceableNamedProperties1273);
            ruleReplaceableNamedProperties();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReplaceableNamedPropertiesRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleReplaceableNamedProperties1280); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleReplaceableNamedProperties"


    // $ANTLR start "ruleReplaceableNamedProperties"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:637:1: ruleReplaceableNamedProperties : ( ( rule__ReplaceableNamedProperties__Group__0 ) ) ;
    public final void ruleReplaceableNamedProperties() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:641:2: ( ( ( rule__ReplaceableNamedProperties__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:642:1: ( ( rule__ReplaceableNamedProperties__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:642:1: ( ( rule__ReplaceableNamedProperties__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:643:1: ( rule__ReplaceableNamedProperties__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReplaceableNamedPropertiesAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:644:1: ( rule__ReplaceableNamedProperties__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:644:2: rule__ReplaceableNamedProperties__Group__0
            {
            pushFollow(FOLLOW_rule__ReplaceableNamedProperties__Group__0_in_ruleReplaceableNamedProperties1306);
            rule__ReplaceableNamedProperties__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReplaceableNamedPropertiesAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleReplaceableNamedProperties"


    // $ANTLR start "entryRuleAbstractDefinitions"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:656:1: entryRuleAbstractDefinitions : ruleAbstractDefinitions EOF ;
    public final void entryRuleAbstractDefinitions() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:657:1: ( ruleAbstractDefinitions EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:658:1: ruleAbstractDefinitions EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAbstractDefinitionsRule()); 
            }
            pushFollow(FOLLOW_ruleAbstractDefinitions_in_entryRuleAbstractDefinitions1333);
            ruleAbstractDefinitions();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAbstractDefinitionsRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleAbstractDefinitions1340); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleAbstractDefinitions"


    // $ANTLR start "ruleAbstractDefinitions"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:665:1: ruleAbstractDefinitions : ( ( rule__AbstractDefinitions__Alternatives ) ) ;
    public final void ruleAbstractDefinitions() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:669:2: ( ( ( rule__AbstractDefinitions__Alternatives ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:670:1: ( ( rule__AbstractDefinitions__Alternatives ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:670:1: ( ( rule__AbstractDefinitions__Alternatives ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:671:1: ( rule__AbstractDefinitions__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAbstractDefinitionsAccess().getAlternatives()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:672:1: ( rule__AbstractDefinitions__Alternatives )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:672:2: rule__AbstractDefinitions__Alternatives
            {
            pushFollow(FOLLOW_rule__AbstractDefinitions__Alternatives_in_ruleAbstractDefinitions1366);
            rule__AbstractDefinitions__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAbstractDefinitionsAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleAbstractDefinitions"


    // $ANTLR start "entryRuleDefinitions"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:684:1: entryRuleDefinitions : ruleDefinitions EOF ;
    public final void entryRuleDefinitions() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:685:1: ( ruleDefinitions EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:686:1: ruleDefinitions EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDefinitionsRule()); 
            }
            pushFollow(FOLLOW_ruleDefinitions_in_entryRuleDefinitions1393);
            ruleDefinitions();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDefinitionsRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleDefinitions1400); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleDefinitions"


    // $ANTLR start "ruleDefinitions"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:693:1: ruleDefinitions : ( ( rule__Definitions__Alternatives ) ) ;
    public final void ruleDefinitions() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:697:2: ( ( ( rule__Definitions__Alternatives ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:698:1: ( ( rule__Definitions__Alternatives ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:698:1: ( ( rule__Definitions__Alternatives ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:699:1: ( rule__Definitions__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDefinitionsAccess().getAlternatives()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:700:1: ( rule__Definitions__Alternatives )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:700:2: rule__Definitions__Alternatives
            {
            pushFollow(FOLLOW_rule__Definitions__Alternatives_in_ruleDefinitions1426);
            rule__Definitions__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDefinitionsAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleDefinitions"


    // $ANTLR start "entryRuleImplementStatement"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:712:1: entryRuleImplementStatement : ruleImplementStatement EOF ;
    public final void entryRuleImplementStatement() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:713:1: ( ruleImplementStatement EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:714:1: ruleImplementStatement EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getImplementStatementRule()); 
            }
            pushFollow(FOLLOW_ruleImplementStatement_in_entryRuleImplementStatement1453);
            ruleImplementStatement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getImplementStatementRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleImplementStatement1460); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleImplementStatement"


    // $ANTLR start "ruleImplementStatement"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:721:1: ruleImplementStatement : ( ( rule__ImplementStatement__Group__0 ) ) ;
    public final void ruleImplementStatement() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:725:2: ( ( ( rule__ImplementStatement__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:726:1: ( ( rule__ImplementStatement__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:726:1: ( ( rule__ImplementStatement__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:727:1: ( rule__ImplementStatement__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getImplementStatementAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:728:1: ( rule__ImplementStatement__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:728:2: rule__ImplementStatement__Group__0
            {
            pushFollow(FOLLOW_rule__ImplementStatement__Group__0_in_ruleImplementStatement1486);
            rule__ImplementStatement__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getImplementStatementAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleImplementStatement"


    // $ANTLR start "entryRuleModule"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:740:1: entryRuleModule : ruleModule EOF ;
    public final void entryRuleModule() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:741:1: ( ruleModule EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:742:1: ruleModule EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleRule()); 
            }
            pushFollow(FOLLOW_ruleModule_in_entryRuleModule1513);
            ruleModule();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleModule1520); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleModule"


    // $ANTLR start "ruleModule"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:749:1: ruleModule : ( ( rule__Module__Group__0 ) ) ;
    public final void ruleModule() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:753:2: ( ( ( rule__Module__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:754:1: ( ( rule__Module__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:754:1: ( ( rule__Module__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:755:1: ( rule__Module__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:756:1: ( rule__Module__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:756:2: rule__Module__Group__0
            {
            pushFollow(FOLLOW_rule__Module__Group__0_in_ruleModule1546);
            rule__Module__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleModule"


    // $ANTLR start "entryRuleModuleExtendedAttribute"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:768:1: entryRuleModuleExtendedAttribute : ruleModuleExtendedAttribute EOF ;
    public final void entryRuleModuleExtendedAttribute() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:769:1: ( ruleModuleExtendedAttribute EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:770:1: ruleModuleExtendedAttribute EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleExtendedAttributeRule()); 
            }
            pushFollow(FOLLOW_ruleModuleExtendedAttribute_in_entryRuleModuleExtendedAttribute1573);
            ruleModuleExtendedAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleExtendedAttributeRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleModuleExtendedAttribute1580); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleModuleExtendedAttribute"


    // $ANTLR start "ruleModuleExtendedAttribute"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:777:1: ruleModuleExtendedAttribute : ( ( rule__ModuleExtendedAttribute__Alternatives ) ) ;
    public final void ruleModuleExtendedAttribute() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:781:2: ( ( ( rule__ModuleExtendedAttribute__Alternatives ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:782:1: ( ( rule__ModuleExtendedAttribute__Alternatives ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:782:1: ( ( rule__ModuleExtendedAttribute__Alternatives ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:783:1: ( rule__ModuleExtendedAttribute__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleExtendedAttributeAccess().getAlternatives()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:784:1: ( rule__ModuleExtendedAttribute__Alternatives )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:784:2: rule__ModuleExtendedAttribute__Alternatives
            {
            pushFollow(FOLLOW_rule__ModuleExtendedAttribute__Alternatives_in_ruleModuleExtendedAttribute1606);
            rule__ModuleExtendedAttribute__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleExtendedAttributeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleModuleExtendedAttribute"


    // $ANTLR start "entryRulePrefix"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:796:1: entryRulePrefix : rulePrefix EOF ;
    public final void entryRulePrefix() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:797:1: ( rulePrefix EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:798:1: rulePrefix EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrefixRule()); 
            }
            pushFollow(FOLLOW_rulePrefix_in_entryRulePrefix1633);
            rulePrefix();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrefixRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRulePrefix1640); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulePrefix"


    // $ANTLR start "rulePrefix"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:805:1: rulePrefix : ( ( rule__Prefix__Group__0 ) ) ;
    public final void rulePrefix() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:809:2: ( ( ( rule__Prefix__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:810:1: ( ( rule__Prefix__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:810:1: ( ( rule__Prefix__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:811:1: ( rule__Prefix__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrefixAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:812:1: ( rule__Prefix__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:812:2: rule__Prefix__Group__0
            {
            pushFollow(FOLLOW_rule__Prefix__Group__0_in_rulePrefix1666);
            rule__Prefix__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrefixAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulePrefix"


    // $ANTLR start "entryRuleNamespaceObject"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:824:1: entryRuleNamespaceObject : ruleNamespaceObject EOF ;
    public final void entryRuleNamespaceObject() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:825:1: ( ruleNamespaceObject EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:826:1: ruleNamespaceObject EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamespaceObjectRule()); 
            }
            pushFollow(FOLLOW_ruleNamespaceObject_in_entryRuleNamespaceObject1693);
            ruleNamespaceObject();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamespaceObjectRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleNamespaceObject1700); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleNamespaceObject"


    // $ANTLR start "ruleNamespaceObject"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:833:1: ruleNamespaceObject : ( ( rule__NamespaceObject__Group__0 ) ) ;
    public final void ruleNamespaceObject() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:837:2: ( ( ( rule__NamespaceObject__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:838:1: ( ( rule__NamespaceObject__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:838:1: ( ( rule__NamespaceObject__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:839:1: ( rule__NamespaceObject__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamespaceObjectAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:840:1: ( rule__NamespaceObject__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:840:2: rule__NamespaceObject__Group__0
            {
            pushFollow(FOLLOW_rule__NamespaceObject__Group__0_in_ruleNamespaceObject1726);
            rule__NamespaceObject__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamespaceObjectAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleNamespaceObject"


    // $ANTLR start "entryRuleInterface"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:852:1: entryRuleInterface : ruleInterface EOF ;
    public final void entryRuleInterface() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:853:1: ( ruleInterface EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:854:1: ruleInterface EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceRule()); 
            }
            pushFollow(FOLLOW_ruleInterface_in_entryRuleInterface1753);
            ruleInterface();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleInterface1760); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleInterface"


    // $ANTLR start "ruleInterface"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:861:1: ruleInterface : ( ( rule__Interface__Group__0 ) ) ;
    public final void ruleInterface() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:865:2: ( ( ( rule__Interface__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:866:1: ( ( rule__Interface__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:866:1: ( ( rule__Interface__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:867:1: ( rule__Interface__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:868:1: ( rule__Interface__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:868:2: rule__Interface__Group__0
            {
            pushFollow(FOLLOW_rule__Interface__Group__0_in_ruleInterface1786);
            rule__Interface__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleInterface"


    // $ANTLR start "entryRuleInterfaceExtendedAttribute"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:880:1: entryRuleInterfaceExtendedAttribute : ruleInterfaceExtendedAttribute EOF ;
    public final void entryRuleInterfaceExtendedAttribute() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:881:1: ( ruleInterfaceExtendedAttribute EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:882:1: ruleInterfaceExtendedAttribute EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceExtendedAttributeRule()); 
            }
            pushFollow(FOLLOW_ruleInterfaceExtendedAttribute_in_entryRuleInterfaceExtendedAttribute1813);
            ruleInterfaceExtendedAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceExtendedAttributeRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleInterfaceExtendedAttribute1820); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleInterfaceExtendedAttribute"


    // $ANTLR start "ruleInterfaceExtendedAttribute"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:889:1: ruleInterfaceExtendedAttribute : ( ( rule__InterfaceExtendedAttribute__Alternatives ) ) ;
    public final void ruleInterfaceExtendedAttribute() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:893:2: ( ( ( rule__InterfaceExtendedAttribute__Alternatives ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:894:1: ( ( rule__InterfaceExtendedAttribute__Alternatives ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:894:1: ( ( rule__InterfaceExtendedAttribute__Alternatives ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:895:1: ( rule__InterfaceExtendedAttribute__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceExtendedAttributeAccess().getAlternatives()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:896:1: ( rule__InterfaceExtendedAttribute__Alternatives )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:896:2: rule__InterfaceExtendedAttribute__Alternatives
            {
            pushFollow(FOLLOW_rule__InterfaceExtendedAttribute__Alternatives_in_ruleInterfaceExtendedAttribute1846);
            rule__InterfaceExtendedAttribute__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceExtendedAttributeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleInterfaceExtendedAttribute"


    // $ANTLR start "entryRuleInterfaceMember"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:908:1: entryRuleInterfaceMember : ruleInterfaceMember EOF ;
    public final void entryRuleInterfaceMember() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:909:1: ( ruleInterfaceMember EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:910:1: ruleInterfaceMember EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceMemberRule()); 
            }
            pushFollow(FOLLOW_ruleInterfaceMember_in_entryRuleInterfaceMember1873);
            ruleInterfaceMember();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceMemberRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleInterfaceMember1880); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleInterfaceMember"


    // $ANTLR start "ruleInterfaceMember"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:917:1: ruleInterfaceMember : ( ( rule__InterfaceMember__Alternatives ) ) ;
    public final void ruleInterfaceMember() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:921:2: ( ( ( rule__InterfaceMember__Alternatives ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:922:1: ( ( rule__InterfaceMember__Alternatives ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:922:1: ( ( rule__InterfaceMember__Alternatives ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:923:1: ( rule__InterfaceMember__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceMemberAccess().getAlternatives()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:924:1: ( rule__InterfaceMember__Alternatives )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:924:2: rule__InterfaceMember__Alternatives
            {
            pushFollow(FOLLOW_rule__InterfaceMember__Alternatives_in_ruleInterfaceMember1906);
            rule__InterfaceMember__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceMemberAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleInterfaceMember"


    // $ANTLR start "entryRuleInterfaceFeature"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:936:1: entryRuleInterfaceFeature : ruleInterfaceFeature EOF ;
    public final void entryRuleInterfaceFeature() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:937:1: ( ruleInterfaceFeature EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:938:1: ruleInterfaceFeature EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceFeatureRule()); 
            }
            pushFollow(FOLLOW_ruleInterfaceFeature_in_entryRuleInterfaceFeature1933);
            ruleInterfaceFeature();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceFeatureRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleInterfaceFeature1940); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleInterfaceFeature"


    // $ANTLR start "ruleInterfaceFeature"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:945:1: ruleInterfaceFeature : ( ( rule__InterfaceFeature__Alternatives ) ) ;
    public final void ruleInterfaceFeature() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:949:2: ( ( ( rule__InterfaceFeature__Alternatives ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:950:1: ( ( rule__InterfaceFeature__Alternatives ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:950:1: ( ( rule__InterfaceFeature__Alternatives ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:951:1: ( rule__InterfaceFeature__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceFeatureAccess().getAlternatives()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:952:1: ( rule__InterfaceFeature__Alternatives )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:952:2: rule__InterfaceFeature__Alternatives
            {
            pushFollow(FOLLOW_rule__InterfaceFeature__Alternatives_in_ruleInterfaceFeature1966);
            rule__InterfaceFeature__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceFeatureAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleInterfaceFeature"


    // $ANTLR start "entryRuleOperation"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:964:1: entryRuleOperation : ruleOperation EOF ;
    public final void entryRuleOperation() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:965:1: ( ruleOperation EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:966:1: ruleOperation EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationRule()); 
            }
            pushFollow(FOLLOW_ruleOperation_in_entryRuleOperation1993);
            ruleOperation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleOperation2000); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleOperation"


    // $ANTLR start "ruleOperation"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:973:1: ruleOperation : ( ( rule__Operation__Group__0 ) ) ;
    public final void ruleOperation() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:977:2: ( ( ( rule__Operation__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:978:1: ( ( rule__Operation__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:978:1: ( ( rule__Operation__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:979:1: ( rule__Operation__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:980:1: ( rule__Operation__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:980:2: rule__Operation__Group__0
            {
            pushFollow(FOLLOW_rule__Operation__Group__0_in_ruleOperation2026);
            rule__Operation__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleOperation"


    // $ANTLR start "entryRuleOperationExtendedAttribute"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:992:1: entryRuleOperationExtendedAttribute : ruleOperationExtendedAttribute EOF ;
    public final void entryRuleOperationExtendedAttribute() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:993:1: ( ruleOperationExtendedAttribute EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:994:1: ruleOperationExtendedAttribute EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationExtendedAttributeRule()); 
            }
            pushFollow(FOLLOW_ruleOperationExtendedAttribute_in_entryRuleOperationExtendedAttribute2053);
            ruleOperationExtendedAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationExtendedAttributeRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleOperationExtendedAttribute2060); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleOperationExtendedAttribute"


    // $ANTLR start "ruleOperationExtendedAttribute"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1001:1: ruleOperationExtendedAttribute : ( ( rule__OperationExtendedAttribute__Alternatives ) ) ;
    public final void ruleOperationExtendedAttribute() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1005:2: ( ( ( rule__OperationExtendedAttribute__Alternatives ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1006:1: ( ( rule__OperationExtendedAttribute__Alternatives ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1006:1: ( ( rule__OperationExtendedAttribute__Alternatives ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1007:1: ( rule__OperationExtendedAttribute__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationExtendedAttributeAccess().getAlternatives()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1008:1: ( rule__OperationExtendedAttribute__Alternatives )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1008:2: rule__OperationExtendedAttribute__Alternatives
            {
            pushFollow(FOLLOW_rule__OperationExtendedAttribute__Alternatives_in_ruleOperationExtendedAttribute2086);
            rule__OperationExtendedAttribute__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationExtendedAttributeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleOperationExtendedAttribute"


    // $ANTLR start "entryRuleOperationSpecial"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1020:1: entryRuleOperationSpecial : ruleOperationSpecial EOF ;
    public final void entryRuleOperationSpecial() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1021:1: ( ruleOperationSpecial EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1022:1: ruleOperationSpecial EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationSpecialRule()); 
            }
            pushFollow(FOLLOW_ruleOperationSpecial_in_entryRuleOperationSpecial2113);
            ruleOperationSpecial();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationSpecialRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleOperationSpecial2120); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleOperationSpecial"


    // $ANTLR start "ruleOperationSpecial"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1029:1: ruleOperationSpecial : ( ( rule__OperationSpecial__Alternatives ) ) ;
    public final void ruleOperationSpecial() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1033:2: ( ( ( rule__OperationSpecial__Alternatives ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1034:1: ( ( rule__OperationSpecial__Alternatives ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1034:1: ( ( rule__OperationSpecial__Alternatives ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1035:1: ( rule__OperationSpecial__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationSpecialAccess().getAlternatives()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1036:1: ( rule__OperationSpecial__Alternatives )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1036:2: rule__OperationSpecial__Alternatives
            {
            pushFollow(FOLLOW_rule__OperationSpecial__Alternatives_in_ruleOperationSpecial2146);
            rule__OperationSpecial__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationSpecialAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleOperationSpecial"


    // $ANTLR start "entryRuleAttribute"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1048:1: entryRuleAttribute : ruleAttribute EOF ;
    public final void entryRuleAttribute() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1049:1: ( ruleAttribute EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1050:1: ruleAttribute EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeRule()); 
            }
            pushFollow(FOLLOW_ruleAttribute_in_entryRuleAttribute2173);
            ruleAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleAttribute2180); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleAttribute"


    // $ANTLR start "ruleAttribute"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1057:1: ruleAttribute : ( ( rule__Attribute__Group__0 ) ) ;
    public final void ruleAttribute() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1061:2: ( ( ( rule__Attribute__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1062:1: ( ( rule__Attribute__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1062:1: ( ( rule__Attribute__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1063:1: ( rule__Attribute__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1064:1: ( rule__Attribute__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1064:2: rule__Attribute__Group__0
            {
            pushFollow(FOLLOW_rule__Attribute__Group__0_in_ruleAttribute2206);
            rule__Attribute__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleAttribute"


    // $ANTLR start "entryRuleAttributeExtendedAttribute"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1076:1: entryRuleAttributeExtendedAttribute : ruleAttributeExtendedAttribute EOF ;
    public final void entryRuleAttributeExtendedAttribute() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1077:1: ( ruleAttributeExtendedAttribute EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1078:1: ruleAttributeExtendedAttribute EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeExtendedAttributeRule()); 
            }
            pushFollow(FOLLOW_ruleAttributeExtendedAttribute_in_entryRuleAttributeExtendedAttribute2233);
            ruleAttributeExtendedAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeExtendedAttributeRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleAttributeExtendedAttribute2240); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleAttributeExtendedAttribute"


    // $ANTLR start "ruleAttributeExtendedAttribute"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1085:1: ruleAttributeExtendedAttribute : ( ( rule__AttributeExtendedAttribute__Alternatives ) ) ;
    public final void ruleAttributeExtendedAttribute() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1089:2: ( ( ( rule__AttributeExtendedAttribute__Alternatives ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1090:1: ( ( rule__AttributeExtendedAttribute__Alternatives ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1090:1: ( ( rule__AttributeExtendedAttribute__Alternatives ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1091:1: ( rule__AttributeExtendedAttribute__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeExtendedAttributeAccess().getAlternatives()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1092:1: ( rule__AttributeExtendedAttribute__Alternatives )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1092:2: rule__AttributeExtendedAttribute__Alternatives
            {
            pushFollow(FOLLOW_rule__AttributeExtendedAttribute__Alternatives_in_ruleAttributeExtendedAttribute2266);
            rule__AttributeExtendedAttribute__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeExtendedAttributeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleAttributeExtendedAttribute"


    // $ANTLR start "entryRuleException"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1104:1: entryRuleException : ruleException EOF ;
    public final void entryRuleException() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1105:1: ( ruleException EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1106:1: ruleException EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionRule()); 
            }
            pushFollow(FOLLOW_ruleException_in_entryRuleException2293);
            ruleException();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleException2300); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleException"


    // $ANTLR start "ruleException"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1113:1: ruleException : ( ( rule__Exception__Group__0 ) ) ;
    public final void ruleException() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1117:2: ( ( ( rule__Exception__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1118:1: ( ( rule__Exception__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1118:1: ( ( rule__Exception__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1119:1: ( rule__Exception__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1120:1: ( rule__Exception__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1120:2: rule__Exception__Group__0
            {
            pushFollow(FOLLOW_rule__Exception__Group__0_in_ruleException2326);
            rule__Exception__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleException"


    // $ANTLR start "entryRuleExceptionMember"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1132:1: entryRuleExceptionMember : ruleExceptionMember EOF ;
    public final void entryRuleExceptionMember() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1133:1: ( ruleExceptionMember EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1134:1: ruleExceptionMember EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionMemberRule()); 
            }
            pushFollow(FOLLOW_ruleExceptionMember_in_entryRuleExceptionMember2353);
            ruleExceptionMember();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionMemberRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleExceptionMember2360); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleExceptionMember"


    // $ANTLR start "ruleExceptionMember"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1141:1: ruleExceptionMember : ( ( rule__ExceptionMember__Alternatives ) ) ;
    public final void ruleExceptionMember() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1145:2: ( ( ( rule__ExceptionMember__Alternatives ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1146:1: ( ( rule__ExceptionMember__Alternatives ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1146:1: ( ( rule__ExceptionMember__Alternatives ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1147:1: ( rule__ExceptionMember__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionMemberAccess().getAlternatives()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1148:1: ( rule__ExceptionMember__Alternatives )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1148:2: rule__ExceptionMember__Alternatives
            {
            pushFollow(FOLLOW_rule__ExceptionMember__Alternatives_in_ruleExceptionMember2386);
            rule__ExceptionMember__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionMemberAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleExceptionMember"


    // $ANTLR start "entryRuleExceptionField"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1160:1: entryRuleExceptionField : ruleExceptionField EOF ;
    public final void entryRuleExceptionField() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1161:1: ( ruleExceptionField EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1162:1: ruleExceptionField EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionFieldRule()); 
            }
            pushFollow(FOLLOW_ruleExceptionField_in_entryRuleExceptionField2413);
            ruleExceptionField();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionFieldRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleExceptionField2420); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleExceptionField"


    // $ANTLR start "ruleExceptionField"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1169:1: ruleExceptionField : ( ( rule__ExceptionField__Group__0 ) ) ;
    public final void ruleExceptionField() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1173:2: ( ( ( rule__ExceptionField__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1174:1: ( ( rule__ExceptionField__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1174:1: ( ( rule__ExceptionField__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1175:1: ( rule__ExceptionField__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionFieldAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1176:1: ( rule__ExceptionField__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1176:2: rule__ExceptionField__Group__0
            {
            pushFollow(FOLLOW_rule__ExceptionField__Group__0_in_ruleExceptionField2446);
            rule__ExceptionField__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionFieldAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleExceptionField"


    // $ANTLR start "entryRuleExceptionExtendedAttribute"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1188:1: entryRuleExceptionExtendedAttribute : ruleExceptionExtendedAttribute EOF ;
    public final void entryRuleExceptionExtendedAttribute() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1189:1: ( ruleExceptionExtendedAttribute EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1190:1: ruleExceptionExtendedAttribute EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionExtendedAttributeRule()); 
            }
            pushFollow(FOLLOW_ruleExceptionExtendedAttribute_in_entryRuleExceptionExtendedAttribute2473);
            ruleExceptionExtendedAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionExtendedAttributeRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleExceptionExtendedAttribute2480); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleExceptionExtendedAttribute"


    // $ANTLR start "ruleExceptionExtendedAttribute"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1197:1: ruleExceptionExtendedAttribute : ( ruleNoInterfaceObject ) ;
    public final void ruleExceptionExtendedAttribute() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1201:2: ( ( ruleNoInterfaceObject ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1202:1: ( ruleNoInterfaceObject )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1202:1: ( ruleNoInterfaceObject )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1203:1: ruleNoInterfaceObject
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionExtendedAttributeAccess().getNoInterfaceObjectParserRuleCall()); 
            }
            pushFollow(FOLLOW_ruleNoInterfaceObject_in_ruleExceptionExtendedAttribute2506);
            ruleNoInterfaceObject();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionExtendedAttributeAccess().getNoInterfaceObjectParserRuleCall()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleExceptionExtendedAttribute"


    // $ANTLR start "entryRuleArgument"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1216:1: entryRuleArgument : ruleArgument EOF ;
    public final void entryRuleArgument() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1217:1: ( ruleArgument EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1218:1: ruleArgument EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentRule()); 
            }
            pushFollow(FOLLOW_ruleArgument_in_entryRuleArgument2532);
            ruleArgument();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleArgument2539); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleArgument"


    // $ANTLR start "ruleArgument"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1225:1: ruleArgument : ( ( rule__Argument__Group__0 ) ) ;
    public final void ruleArgument() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1229:2: ( ( ( rule__Argument__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1230:1: ( ( rule__Argument__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1230:1: ( ( rule__Argument__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1231:1: ( rule__Argument__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1232:1: ( rule__Argument__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1232:2: rule__Argument__Group__0
            {
            pushFollow(FOLLOW_rule__Argument__Group__0_in_ruleArgument2565);
            rule__Argument__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleArgument"


    // $ANTLR start "entryRuleArgumentExtendedAttribute"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1244:1: entryRuleArgumentExtendedAttribute : ruleArgumentExtendedAttribute EOF ;
    public final void entryRuleArgumentExtendedAttribute() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1245:1: ( ruleArgumentExtendedAttribute EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1246:1: ruleArgumentExtendedAttribute EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentExtendedAttributeRule()); 
            }
            pushFollow(FOLLOW_ruleArgumentExtendedAttribute_in_entryRuleArgumentExtendedAttribute2592);
            ruleArgumentExtendedAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentExtendedAttributeRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleArgumentExtendedAttribute2599); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleArgumentExtendedAttribute"


    // $ANTLR start "ruleArgumentExtendedAttribute"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1253:1: ruleArgumentExtendedAttribute : ( ( rule__ArgumentExtendedAttribute__Alternatives ) ) ;
    public final void ruleArgumentExtendedAttribute() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1257:2: ( ( ( rule__ArgumentExtendedAttribute__Alternatives ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1258:1: ( ( rule__ArgumentExtendedAttribute__Alternatives ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1258:1: ( ( rule__ArgumentExtendedAttribute__Alternatives ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1259:1: ( rule__ArgumentExtendedAttribute__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentExtendedAttributeAccess().getAlternatives()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1260:1: ( rule__ArgumentExtendedAttribute__Alternatives )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1260:2: rule__ArgumentExtendedAttribute__Alternatives
            {
            pushFollow(FOLLOW_rule__ArgumentExtendedAttribute__Alternatives_in_ruleArgumentExtendedAttribute2625);
            rule__ArgumentExtendedAttribute__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentExtendedAttributeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleArgumentExtendedAttribute"


    // $ANTLR start "entryRuleConst"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1272:1: entryRuleConst : ruleConst EOF ;
    public final void entryRuleConst() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1273:1: ( ruleConst EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1274:1: ruleConst EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstRule()); 
            }
            pushFollow(FOLLOW_ruleConst_in_entryRuleConst2652);
            ruleConst();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleConst2659); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleConst"


    // $ANTLR start "ruleConst"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1281:1: ruleConst : ( ( rule__Const__Group__0 ) ) ;
    public final void ruleConst() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1285:2: ( ( ( rule__Const__Group__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1286:1: ( ( rule__Const__Group__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1286:1: ( ( rule__Const__Group__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1287:1: ( rule__Const__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstAccess().getGroup()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1288:1: ( rule__Const__Group__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1288:2: rule__Const__Group__0
            {
            pushFollow(FOLLOW_rule__Const__Group__0_in_ruleConst2685);
            rule__Const__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleConst"


    // $ANTLR start "entryRuleConstExpr"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1300:1: entryRuleConstExpr : ruleConstExpr EOF ;
    public final void entryRuleConstExpr() throws RecognitionException {
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1301:1: ( ruleConstExpr EOF )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1302:1: ruleConstExpr EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstExprRule()); 
            }
            pushFollow(FOLLOW_ruleConstExpr_in_entryRuleConstExpr2712);
            ruleConstExpr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstExprRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleConstExpr2719); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleConstExpr"


    // $ANTLR start "ruleConstExpr"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1309:1: ruleConstExpr : ( ( rule__ConstExpr__Alternatives ) ) ;
    public final void ruleConstExpr() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1313:2: ( ( ( rule__ConstExpr__Alternatives ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1314:1: ( ( rule__ConstExpr__Alternatives ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1314:1: ( ( rule__ConstExpr__Alternatives ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1315:1: ( rule__ConstExpr__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstExprAccess().getAlternatives()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1316:1: ( rule__ConstExpr__Alternatives )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1316:2: rule__ConstExpr__Alternatives
            {
            pushFollow(FOLLOW_rule__ConstExpr__Alternatives_in_ruleConstExpr2745);
            rule__ConstExpr__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstExprAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleConstExpr"


    // $ANTLR start "rule__TypeRef__Alternatives"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1328:1: rule__TypeRef__Alternatives : ( ( ( rule__TypeRef__Group_0__0 ) ) | ( ( rule__TypeRef__Group_1__0 ) ) | ( ( rule__TypeRef__Group_2__0 ) ) );
    public final void rule__TypeRef__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1332:1: ( ( ( rule__TypeRef__Group_0__0 ) ) | ( ( rule__TypeRef__Group_1__0 ) ) | ( ( rule__TypeRef__Group_2__0 ) ) )
            int alt1=3;
            switch ( input.LA(1) ) {
            case 12:
            case 13:
            case 14:
            case 15:
            case 16:
            case 17:
            case 18:
            case 19:
            case 20:
            case 21:
            case 22:
            case 23:
            case 71:
                {
                alt1=1;
                }
                break;
            case 27:
                {
                alt1=2;
                }
                break;
            case RULE_ID:
                {
                alt1=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 1, 0, input);

                throw nvae;
            }

            switch (alt1) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1333:1: ( ( rule__TypeRef__Group_0__0 ) )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1333:1: ( ( rule__TypeRef__Group_0__0 ) )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1334:1: ( rule__TypeRef__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTypeRefAccess().getGroup_0()); 
                    }
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1335:1: ( rule__TypeRef__Group_0__0 )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1335:2: rule__TypeRef__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__TypeRef__Group_0__0_in_rule__TypeRef__Alternatives2781);
                    rule__TypeRef__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTypeRefAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1339:6: ( ( rule__TypeRef__Group_1__0 ) )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1339:6: ( ( rule__TypeRef__Group_1__0 ) )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1340:1: ( rule__TypeRef__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTypeRefAccess().getGroup_1()); 
                    }
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1341:1: ( rule__TypeRef__Group_1__0 )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1341:2: rule__TypeRef__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__TypeRef__Group_1__0_in_rule__TypeRef__Alternatives2799);
                    rule__TypeRef__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTypeRefAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1345:6: ( ( rule__TypeRef__Group_2__0 ) )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1345:6: ( ( rule__TypeRef__Group_2__0 ) )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1346:1: ( rule__TypeRef__Group_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTypeRefAccess().getGroup_2()); 
                    }
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1347:1: ( rule__TypeRef__Group_2__0 )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1347:2: rule__TypeRef__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__TypeRef__Group_2__0_in_rule__TypeRef__Alternatives2817);
                    rule__TypeRef__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTypeRefAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeRef__Alternatives"


    // $ANTLR start "rule__PrimitiveTypeRef__NameAlternatives_1_0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1357:1: rule__PrimitiveTypeRef__NameAlternatives_1_0 : ( ( 'void' ) | ( 'boolean' ) | ( 'byte' ) | ( 'double' ) | ( 'float' ) | ( 'short' ) | ( 'long' ) | ( 'Object' ) | ( 'object' ) | ( 'any' ) | ( 'octet' ) | ( 'DOMString' ) );
    public final void rule__PrimitiveTypeRef__NameAlternatives_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1361:1: ( ( 'void' ) | ( 'boolean' ) | ( 'byte' ) | ( 'double' ) | ( 'float' ) | ( 'short' ) | ( 'long' ) | ( 'Object' ) | ( 'object' ) | ( 'any' ) | ( 'octet' ) | ( 'DOMString' ) )
            int alt2=12;
            switch ( input.LA(1) ) {
            case 12:
                {
                alt2=1;
                }
                break;
            case 13:
                {
                alt2=2;
                }
                break;
            case 14:
                {
                alt2=3;
                }
                break;
            case 15:
                {
                alt2=4;
                }
                break;
            case 16:
                {
                alt2=5;
                }
                break;
            case 17:
                {
                alt2=6;
                }
                break;
            case 18:
                {
                alt2=7;
                }
                break;
            case 19:
                {
                alt2=8;
                }
                break;
            case 20:
                {
                alt2=9;
                }
                break;
            case 21:
                {
                alt2=10;
                }
                break;
            case 22:
                {
                alt2=11;
                }
                break;
            case 23:
                {
                alt2=12;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;
            }

            switch (alt2) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1362:1: ( 'void' )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1362:1: ( 'void' )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1363:1: 'void'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimitiveTypeRefAccess().getNameVoidKeyword_1_0_0()); 
                    }
                    match(input,12,FOLLOW_12_in_rule__PrimitiveTypeRef__NameAlternatives_1_02852); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimitiveTypeRefAccess().getNameVoidKeyword_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1370:6: ( 'boolean' )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1370:6: ( 'boolean' )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1371:1: 'boolean'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimitiveTypeRefAccess().getNameBooleanKeyword_1_0_1()); 
                    }
                    match(input,13,FOLLOW_13_in_rule__PrimitiveTypeRef__NameAlternatives_1_02872); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimitiveTypeRefAccess().getNameBooleanKeyword_1_0_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1378:6: ( 'byte' )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1378:6: ( 'byte' )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1379:1: 'byte'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimitiveTypeRefAccess().getNameByteKeyword_1_0_2()); 
                    }
                    match(input,14,FOLLOW_14_in_rule__PrimitiveTypeRef__NameAlternatives_1_02892); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimitiveTypeRefAccess().getNameByteKeyword_1_0_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1386:6: ( 'double' )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1386:6: ( 'double' )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1387:1: 'double'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimitiveTypeRefAccess().getNameDoubleKeyword_1_0_3()); 
                    }
                    match(input,15,FOLLOW_15_in_rule__PrimitiveTypeRef__NameAlternatives_1_02912); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimitiveTypeRefAccess().getNameDoubleKeyword_1_0_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1394:6: ( 'float' )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1394:6: ( 'float' )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1395:1: 'float'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimitiveTypeRefAccess().getNameFloatKeyword_1_0_4()); 
                    }
                    match(input,16,FOLLOW_16_in_rule__PrimitiveTypeRef__NameAlternatives_1_02932); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimitiveTypeRefAccess().getNameFloatKeyword_1_0_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1402:6: ( 'short' )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1402:6: ( 'short' )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1403:1: 'short'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimitiveTypeRefAccess().getNameShortKeyword_1_0_5()); 
                    }
                    match(input,17,FOLLOW_17_in_rule__PrimitiveTypeRef__NameAlternatives_1_02952); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimitiveTypeRefAccess().getNameShortKeyword_1_0_5()); 
                    }

                    }


                    }
                    break;
                case 7 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1410:6: ( 'long' )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1410:6: ( 'long' )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1411:1: 'long'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimitiveTypeRefAccess().getNameLongKeyword_1_0_6()); 
                    }
                    match(input,18,FOLLOW_18_in_rule__PrimitiveTypeRef__NameAlternatives_1_02972); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimitiveTypeRefAccess().getNameLongKeyword_1_0_6()); 
                    }

                    }


                    }
                    break;
                case 8 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1418:6: ( 'Object' )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1418:6: ( 'Object' )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1419:1: 'Object'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimitiveTypeRefAccess().getNameObjectKeyword_1_0_7()); 
                    }
                    match(input,19,FOLLOW_19_in_rule__PrimitiveTypeRef__NameAlternatives_1_02992); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimitiveTypeRefAccess().getNameObjectKeyword_1_0_7()); 
                    }

                    }


                    }
                    break;
                case 9 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1426:6: ( 'object' )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1426:6: ( 'object' )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1427:1: 'object'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimitiveTypeRefAccess().getNameObjectKeyword_1_0_8()); 
                    }
                    match(input,20,FOLLOW_20_in_rule__PrimitiveTypeRef__NameAlternatives_1_03012); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimitiveTypeRefAccess().getNameObjectKeyword_1_0_8()); 
                    }

                    }


                    }
                    break;
                case 10 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1434:6: ( 'any' )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1434:6: ( 'any' )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1435:1: 'any'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimitiveTypeRefAccess().getNameAnyKeyword_1_0_9()); 
                    }
                    match(input,21,FOLLOW_21_in_rule__PrimitiveTypeRef__NameAlternatives_1_03032); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimitiveTypeRefAccess().getNameAnyKeyword_1_0_9()); 
                    }

                    }


                    }
                    break;
                case 11 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1442:6: ( 'octet' )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1442:6: ( 'octet' )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1443:1: 'octet'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimitiveTypeRefAccess().getNameOctetKeyword_1_0_10()); 
                    }
                    match(input,22,FOLLOW_22_in_rule__PrimitiveTypeRef__NameAlternatives_1_03052); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimitiveTypeRefAccess().getNameOctetKeyword_1_0_10()); 
                    }

                    }


                    }
                    break;
                case 12 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1450:6: ( 'DOMString' )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1450:6: ( 'DOMString' )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1451:1: 'DOMString'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimitiveTypeRefAccess().getNameDOMStringKeyword_1_0_11()); 
                    }
                    match(input,23,FOLLOW_23_in_rule__PrimitiveTypeRef__NameAlternatives_1_03072); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimitiveTypeRefAccess().getNameDOMStringKeyword_1_0_11()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PrimitiveTypeRef__NameAlternatives_1_0"


    // $ANTLR start "rule__Callback__Alternatives"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1463:1: rule__Callback__Alternatives : ( ( ( rule__Callback__Group_0__0 ) ) | ( ( rule__Callback__Group_1__0 ) ) | ( ( rule__Callback__Group_2__0 ) ) );
    public final void rule__Callback__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1467:1: ( ( ( rule__Callback__Group_0__0 ) ) | ( ( rule__Callback__Group_1__0 ) ) | ( ( rule__Callback__Group_2__0 ) ) )
            int alt3=3;
            int LA3_0 = input.LA(1);

            if ( (LA3_0==36) ) {
                int LA3_1 = input.LA(2);

                if ( (LA3_1==35) ) {
                    int LA3_2 = input.LA(3);

                    if ( (LA3_2==73) ) {
                        alt3=2;
                    }
                    else if ( (LA3_2==74) ) {
                        alt3=3;
                    }
                    else {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("", 3, 2, input);

                        throw nvae;
                    }
                }
                else if ( (LA3_1==EOF||LA3_1==33||LA3_1==52) ) {
                    alt3=1;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 3, 1, input);

                    throw nvae;
                }
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 3, 0, input);

                throw nvae;
            }
            switch (alt3) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1468:1: ( ( rule__Callback__Group_0__0 ) )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1468:1: ( ( rule__Callback__Group_0__0 ) )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1469:1: ( rule__Callback__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getCallbackAccess().getGroup_0()); 
                    }
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1470:1: ( rule__Callback__Group_0__0 )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1470:2: rule__Callback__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__Callback__Group_0__0_in_rule__Callback__Alternatives3106);
                    rule__Callback__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getCallbackAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1474:6: ( ( rule__Callback__Group_1__0 ) )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1474:6: ( ( rule__Callback__Group_1__0 ) )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1475:1: ( rule__Callback__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getCallbackAccess().getGroup_1()); 
                    }
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1476:1: ( rule__Callback__Group_1__0 )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1476:2: rule__Callback__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__Callback__Group_1__0_in_rule__Callback__Alternatives3124);
                    rule__Callback__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getCallbackAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1480:6: ( ( rule__Callback__Group_2__0 ) )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1480:6: ( ( rule__Callback__Group_2__0 ) )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1481:1: ( rule__Callback__Group_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getCallbackAccess().getGroup_2()); 
                    }
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1482:1: ( rule__Callback__Group_2__0 )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1482:2: rule__Callback__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__Callback__Group_2__0_in_rule__Callback__Alternatives3142);
                    rule__Callback__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getCallbackAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Callback__Alternatives"


    // $ANTLR start "rule__TreatUndefinedAs__Alternatives"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1491:1: rule__TreatUndefinedAs__Alternatives : ( ( ( rule__TreatUndefinedAs__Group_0__0 ) ) | ( ( rule__TreatUndefinedAs__Group_1__0 ) ) );
    public final void rule__TreatUndefinedAs__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1495:1: ( ( ( rule__TreatUndefinedAs__Group_0__0 ) ) | ( ( rule__TreatUndefinedAs__Group_1__0 ) ) )
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==42) ) {
                int LA4_1 = input.LA(2);

                if ( (LA4_1==35) ) {
                    int LA4_2 = input.LA(3);

                    if ( (LA4_2==41) ) {
                        alt4=1;
                    }
                    else if ( (LA4_2==75) ) {
                        alt4=2;
                    }
                    else {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("", 4, 2, input);

                        throw nvae;
                    }
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 4, 1, input);

                    throw nvae;
                }
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 4, 0, input);

                throw nvae;
            }
            switch (alt4) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1496:1: ( ( rule__TreatUndefinedAs__Group_0__0 ) )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1496:1: ( ( rule__TreatUndefinedAs__Group_0__0 ) )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1497:1: ( rule__TreatUndefinedAs__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTreatUndefinedAsAccess().getGroup_0()); 
                    }
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1498:1: ( rule__TreatUndefinedAs__Group_0__0 )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1498:2: rule__TreatUndefinedAs__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__TreatUndefinedAs__Group_0__0_in_rule__TreatUndefinedAs__Alternatives3175);
                    rule__TreatUndefinedAs__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTreatUndefinedAsAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1502:6: ( ( rule__TreatUndefinedAs__Group_1__0 ) )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1502:6: ( ( rule__TreatUndefinedAs__Group_1__0 ) )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1503:1: ( rule__TreatUndefinedAs__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTreatUndefinedAsAccess().getGroup_1()); 
                    }
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1504:1: ( rule__TreatUndefinedAs__Group_1__0 )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1504:2: rule__TreatUndefinedAs__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__TreatUndefinedAs__Group_1__0_in_rule__TreatUndefinedAs__Alternatives3193);
                    rule__TreatUndefinedAs__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTreatUndefinedAsAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatUndefinedAs__Alternatives"


    // $ANTLR start "rule__AbstractDefinitions__Alternatives"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1513:1: rule__AbstractDefinitions__Alternatives : ( ( ruleDefinitions ) | ( ruleModule ) );
    public final void rule__AbstractDefinitions__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1517:1: ( ( ruleDefinitions ) | ( ruleModule ) )
            int alt5=2;
            switch ( input.LA(1) ) {
            case 51:
                {
                int LA5_1 = input.LA(2);

                if ( ((LA5_1>=53 && LA5_1<=54)) ) {
                    alt5=2;
                }
                else if ( (LA5_1==11||LA5_1==30||LA5_1==34||(LA5_1>=36 && LA5_1<=38)||(LA5_1>=45 && LA5_1<=46)) ) {
                    alt5=1;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 5, 1, input);

                    throw nvae;
                }
                }
                break;
            case RULE_ID:
            case 26:
            case 55:
            case 67:
                {
                alt5=1;
                }
                break;
            case 48:
                {
                alt5=2;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 5, 0, input);

                throw nvae;
            }

            switch (alt5) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1518:1: ( ruleDefinitions )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1518:1: ( ruleDefinitions )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1519:1: ruleDefinitions
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAbstractDefinitionsAccess().getDefinitionsParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleDefinitions_in_rule__AbstractDefinitions__Alternatives3226);
                    ruleDefinitions();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAbstractDefinitionsAccess().getDefinitionsParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1524:6: ( ruleModule )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1524:6: ( ruleModule )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1525:1: ruleModule
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAbstractDefinitionsAccess().getModuleParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleModule_in_rule__AbstractDefinitions__Alternatives3243);
                    ruleModule();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAbstractDefinitionsAccess().getModuleParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AbstractDefinitions__Alternatives"


    // $ANTLR start "rule__Definitions__Alternatives"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1535:1: rule__Definitions__Alternatives : ( ( ruleInterface ) | ( ruleException ) | ( ruleTypeDef ) | ( ruleImplementStatement ) );
    public final void rule__Definitions__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1539:1: ( ( ruleInterface ) | ( ruleException ) | ( ruleTypeDef ) | ( ruleImplementStatement ) )
            int alt6=4;
            alt6 = dfa6.predict(input);
            switch (alt6) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1540:1: ( ruleInterface )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1540:1: ( ruleInterface )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1541:1: ruleInterface
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDefinitionsAccess().getInterfaceParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleInterface_in_rule__Definitions__Alternatives3275);
                    ruleInterface();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDefinitionsAccess().getInterfaceParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1546:6: ( ruleException )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1546:6: ( ruleException )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1547:1: ruleException
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDefinitionsAccess().getExceptionParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleException_in_rule__Definitions__Alternatives3292);
                    ruleException();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDefinitionsAccess().getExceptionParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1552:6: ( ruleTypeDef )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1552:6: ( ruleTypeDef )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1553:1: ruleTypeDef
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDefinitionsAccess().getTypeDefParserRuleCall_2()); 
                    }
                    pushFollow(FOLLOW_ruleTypeDef_in_rule__Definitions__Alternatives3309);
                    ruleTypeDef();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDefinitionsAccess().getTypeDefParserRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1558:6: ( ruleImplementStatement )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1558:6: ( ruleImplementStatement )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1559:1: ruleImplementStatement
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDefinitionsAccess().getImplementStatementParserRuleCall_3()); 
                    }
                    pushFollow(FOLLOW_ruleImplementStatement_in_rule__Definitions__Alternatives3326);
                    ruleImplementStatement();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDefinitionsAccess().getImplementStatementParserRuleCall_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definitions__Alternatives"


    // $ANTLR start "rule__ModuleExtendedAttribute__Alternatives"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1569:1: rule__ModuleExtendedAttribute__Alternatives : ( ( rulePrefix ) | ( ruleNamespaceObject ) );
    public final void rule__ModuleExtendedAttribute__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1573:1: ( ( rulePrefix ) | ( ruleNamespaceObject ) )
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==53) ) {
                alt7=1;
            }
            else if ( (LA7_0==54) ) {
                alt7=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 7, 0, input);

                throw nvae;
            }
            switch (alt7) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1574:1: ( rulePrefix )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1574:1: ( rulePrefix )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1575:1: rulePrefix
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getModuleExtendedAttributeAccess().getPrefixParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_rulePrefix_in_rule__ModuleExtendedAttribute__Alternatives3358);
                    rulePrefix();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getModuleExtendedAttributeAccess().getPrefixParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1580:6: ( ruleNamespaceObject )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1580:6: ( ruleNamespaceObject )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1581:1: ruleNamespaceObject
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getModuleExtendedAttributeAccess().getNamespaceObjectParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleNamespaceObject_in_rule__ModuleExtendedAttribute__Alternatives3375);
                    ruleNamespaceObject();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getModuleExtendedAttributeAccess().getNamespaceObjectParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ModuleExtendedAttribute__Alternatives"


    // $ANTLR start "rule__InterfaceExtendedAttribute__Alternatives"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1591:1: rule__InterfaceExtendedAttribute__Alternatives : ( ( ruleCallback ) | ( ruleConstructor ) | ( ruleNamedConstructor ) | ( ruleNoInterfaceObject ) | ( rulePrototypeRoot ) | ( ruleSupplemental ) | ( ruleOverrideBuiltins ) | ( ruleReplaceableNamedProperties ) );
    public final void rule__InterfaceExtendedAttribute__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1595:1: ( ( ruleCallback ) | ( ruleConstructor ) | ( ruleNamedConstructor ) | ( ruleNoInterfaceObject ) | ( rulePrototypeRoot ) | ( ruleSupplemental ) | ( ruleOverrideBuiltins ) | ( ruleReplaceableNamedProperties ) )
            int alt8=8;
            switch ( input.LA(1) ) {
            case 36:
                {
                alt8=1;
                }
                break;
            case 30:
                {
                alt8=2;
                }
                break;
            case 34:
                {
                alt8=3;
                }
                break;
            case 37:
                {
                alt8=4;
                }
                break;
            case 38:
                {
                alt8=5;
                }
                break;
            case 45:
                {
                alt8=6;
                }
                break;
            case 11:
                {
                alt8=7;
                }
                break;
            case 46:
                {
                alt8=8;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 8, 0, input);

                throw nvae;
            }

            switch (alt8) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1596:1: ( ruleCallback )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1596:1: ( ruleCallback )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1597:1: ruleCallback
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInterfaceExtendedAttributeAccess().getCallbackParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleCallback_in_rule__InterfaceExtendedAttribute__Alternatives3407);
                    ruleCallback();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInterfaceExtendedAttributeAccess().getCallbackParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1602:6: ( ruleConstructor )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1602:6: ( ruleConstructor )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1603:1: ruleConstructor
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInterfaceExtendedAttributeAccess().getConstructorParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleConstructor_in_rule__InterfaceExtendedAttribute__Alternatives3424);
                    ruleConstructor();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInterfaceExtendedAttributeAccess().getConstructorParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1608:6: ( ruleNamedConstructor )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1608:6: ( ruleNamedConstructor )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1609:1: ruleNamedConstructor
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInterfaceExtendedAttributeAccess().getNamedConstructorParserRuleCall_2()); 
                    }
                    pushFollow(FOLLOW_ruleNamedConstructor_in_rule__InterfaceExtendedAttribute__Alternatives3441);
                    ruleNamedConstructor();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInterfaceExtendedAttributeAccess().getNamedConstructorParserRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1614:6: ( ruleNoInterfaceObject )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1614:6: ( ruleNoInterfaceObject )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1615:1: ruleNoInterfaceObject
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInterfaceExtendedAttributeAccess().getNoInterfaceObjectParserRuleCall_3()); 
                    }
                    pushFollow(FOLLOW_ruleNoInterfaceObject_in_rule__InterfaceExtendedAttribute__Alternatives3458);
                    ruleNoInterfaceObject();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInterfaceExtendedAttributeAccess().getNoInterfaceObjectParserRuleCall_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1620:6: ( rulePrototypeRoot )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1620:6: ( rulePrototypeRoot )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1621:1: rulePrototypeRoot
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInterfaceExtendedAttributeAccess().getPrototypeRootParserRuleCall_4()); 
                    }
                    pushFollow(FOLLOW_rulePrototypeRoot_in_rule__InterfaceExtendedAttribute__Alternatives3475);
                    rulePrototypeRoot();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInterfaceExtendedAttributeAccess().getPrototypeRootParserRuleCall_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1626:6: ( ruleSupplemental )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1626:6: ( ruleSupplemental )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1627:1: ruleSupplemental
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInterfaceExtendedAttributeAccess().getSupplementalParserRuleCall_5()); 
                    }
                    pushFollow(FOLLOW_ruleSupplemental_in_rule__InterfaceExtendedAttribute__Alternatives3492);
                    ruleSupplemental();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInterfaceExtendedAttributeAccess().getSupplementalParserRuleCall_5()); 
                    }

                    }


                    }
                    break;
                case 7 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1632:6: ( ruleOverrideBuiltins )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1632:6: ( ruleOverrideBuiltins )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1633:1: ruleOverrideBuiltins
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInterfaceExtendedAttributeAccess().getOverrideBuiltinsParserRuleCall_6()); 
                    }
                    pushFollow(FOLLOW_ruleOverrideBuiltins_in_rule__InterfaceExtendedAttribute__Alternatives3509);
                    ruleOverrideBuiltins();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInterfaceExtendedAttributeAccess().getOverrideBuiltinsParserRuleCall_6()); 
                    }

                    }


                    }
                    break;
                case 8 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1638:6: ( ruleReplaceableNamedProperties )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1638:6: ( ruleReplaceableNamedProperties )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1639:1: ruleReplaceableNamedProperties
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInterfaceExtendedAttributeAccess().getReplaceableNamedPropertiesParserRuleCall_7()); 
                    }
                    pushFollow(FOLLOW_ruleReplaceableNamedProperties_in_rule__InterfaceExtendedAttribute__Alternatives3526);
                    ruleReplaceableNamedProperties();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInterfaceExtendedAttributeAccess().getReplaceableNamedPropertiesParserRuleCall_7()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__InterfaceExtendedAttribute__Alternatives"


    // $ANTLR start "rule__InterfaceMember__Alternatives"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1649:1: rule__InterfaceMember__Alternatives : ( ( ruleConst ) | ( ruleInterfaceFeature ) );
    public final void rule__InterfaceMember__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1653:1: ( ( ruleConst ) | ( ruleInterfaceFeature ) )
            int alt9=2;
            int LA9_0 = input.LA(1);

            if ( (LA9_0==68) ) {
                alt9=1;
            }
            else if ( (LA9_0==RULE_ID||(LA9_0>=12 && LA9_0<=23)||LA9_0==27||LA9_0==51||(LA9_0>=58 && LA9_0<=64)||LA9_0==71||(LA9_0>=76 && LA9_0<=77)) ) {
                alt9=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 9, 0, input);

                throw nvae;
            }
            switch (alt9) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1654:1: ( ruleConst )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1654:1: ( ruleConst )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1655:1: ruleConst
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInterfaceMemberAccess().getConstParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleConst_in_rule__InterfaceMember__Alternatives3558);
                    ruleConst();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInterfaceMemberAccess().getConstParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1660:6: ( ruleInterfaceFeature )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1660:6: ( ruleInterfaceFeature )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1661:1: ruleInterfaceFeature
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInterfaceMemberAccess().getInterfaceFeatureParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleInterfaceFeature_in_rule__InterfaceMember__Alternatives3575);
                    ruleInterfaceFeature();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInterfaceMemberAccess().getInterfaceFeatureParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__InterfaceMember__Alternatives"


    // $ANTLR start "rule__InterfaceFeature__Alternatives"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1671:1: rule__InterfaceFeature__Alternatives : ( ( ruleAttribute ) | ( ruleOperation ) );
    public final void rule__InterfaceFeature__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1675:1: ( ( ruleAttribute ) | ( ruleOperation ) )
            int alt10=2;
            alt10 = dfa10.predict(input);
            switch (alt10) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1676:1: ( ruleAttribute )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1676:1: ( ruleAttribute )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1677:1: ruleAttribute
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInterfaceFeatureAccess().getAttributeParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleAttribute_in_rule__InterfaceFeature__Alternatives3607);
                    ruleAttribute();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInterfaceFeatureAccess().getAttributeParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1682:6: ( ruleOperation )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1682:6: ( ruleOperation )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1683:1: ruleOperation
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInterfaceFeatureAccess().getOperationParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleOperation_in_rule__InterfaceFeature__Alternatives3624);
                    ruleOperation();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInterfaceFeatureAccess().getOperationParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__InterfaceFeature__Alternatives"


    // $ANTLR start "rule__OperationExtendedAttribute__Alternatives"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1693:1: rule__OperationExtendedAttribute__Alternatives : ( ( ruleTreatNullAs ) | ( ruleTreatUndefinedAs ) );
    public final void rule__OperationExtendedAttribute__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1697:1: ( ( ruleTreatNullAs ) | ( ruleTreatUndefinedAs ) )
            int alt11=2;
            int LA11_0 = input.LA(1);

            if ( (LA11_0==40) ) {
                alt11=1;
            }
            else if ( (LA11_0==42) ) {
                alt11=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 11, 0, input);

                throw nvae;
            }
            switch (alt11) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1698:1: ( ruleTreatNullAs )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1698:1: ( ruleTreatNullAs )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1699:1: ruleTreatNullAs
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOperationExtendedAttributeAccess().getTreatNullAsParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleTreatNullAs_in_rule__OperationExtendedAttribute__Alternatives3656);
                    ruleTreatNullAs();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOperationExtendedAttributeAccess().getTreatNullAsParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1704:6: ( ruleTreatUndefinedAs )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1704:6: ( ruleTreatUndefinedAs )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1705:1: ruleTreatUndefinedAs
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOperationExtendedAttributeAccess().getTreatUndefinedAsParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleTreatUndefinedAs_in_rule__OperationExtendedAttribute__Alternatives3673);
                    ruleTreatUndefinedAs();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOperationExtendedAttributeAccess().getTreatUndefinedAsParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationExtendedAttribute__Alternatives"


    // $ANTLR start "rule__OperationSpecial__Alternatives"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1715:1: rule__OperationSpecial__Alternatives : ( ( ( rule__OperationSpecial__Group_0__0 ) ) | ( ( rule__OperationSpecial__Group_1__0 ) ) | ( ( rule__OperationSpecial__Group_2__0 ) ) | ( ( rule__OperationSpecial__Group_3__0 ) ) | ( ( rule__OperationSpecial__Group_4__0 ) ) );
    public final void rule__OperationSpecial__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1719:1: ( ( ( rule__OperationSpecial__Group_0__0 ) ) | ( ( rule__OperationSpecial__Group_1__0 ) ) | ( ( rule__OperationSpecial__Group_2__0 ) ) | ( ( rule__OperationSpecial__Group_3__0 ) ) | ( ( rule__OperationSpecial__Group_4__0 ) ) )
            int alt12=5;
            switch ( input.LA(1) ) {
            case 58:
                {
                alt12=1;
                }
                break;
            case 59:
                {
                alt12=2;
                }
                break;
            case 60:
                {
                alt12=3;
                }
                break;
            case 61:
                {
                alt12=4;
                }
                break;
            case 62:
                {
                alt12=5;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 12, 0, input);

                throw nvae;
            }

            switch (alt12) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1720:1: ( ( rule__OperationSpecial__Group_0__0 ) )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1720:1: ( ( rule__OperationSpecial__Group_0__0 ) )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1721:1: ( rule__OperationSpecial__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOperationSpecialAccess().getGroup_0()); 
                    }
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1722:1: ( rule__OperationSpecial__Group_0__0 )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1722:2: rule__OperationSpecial__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__OperationSpecial__Group_0__0_in_rule__OperationSpecial__Alternatives3705);
                    rule__OperationSpecial__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOperationSpecialAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1726:6: ( ( rule__OperationSpecial__Group_1__0 ) )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1726:6: ( ( rule__OperationSpecial__Group_1__0 ) )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1727:1: ( rule__OperationSpecial__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOperationSpecialAccess().getGroup_1()); 
                    }
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1728:1: ( rule__OperationSpecial__Group_1__0 )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1728:2: rule__OperationSpecial__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__OperationSpecial__Group_1__0_in_rule__OperationSpecial__Alternatives3723);
                    rule__OperationSpecial__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOperationSpecialAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1732:6: ( ( rule__OperationSpecial__Group_2__0 ) )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1732:6: ( ( rule__OperationSpecial__Group_2__0 ) )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1733:1: ( rule__OperationSpecial__Group_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOperationSpecialAccess().getGroup_2()); 
                    }
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1734:1: ( rule__OperationSpecial__Group_2__0 )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1734:2: rule__OperationSpecial__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__OperationSpecial__Group_2__0_in_rule__OperationSpecial__Alternatives3741);
                    rule__OperationSpecial__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOperationSpecialAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1738:6: ( ( rule__OperationSpecial__Group_3__0 ) )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1738:6: ( ( rule__OperationSpecial__Group_3__0 ) )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1739:1: ( rule__OperationSpecial__Group_3__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOperationSpecialAccess().getGroup_3()); 
                    }
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1740:1: ( rule__OperationSpecial__Group_3__0 )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1740:2: rule__OperationSpecial__Group_3__0
                    {
                    pushFollow(FOLLOW_rule__OperationSpecial__Group_3__0_in_rule__OperationSpecial__Alternatives3759);
                    rule__OperationSpecial__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOperationSpecialAccess().getGroup_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1744:6: ( ( rule__OperationSpecial__Group_4__0 ) )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1744:6: ( ( rule__OperationSpecial__Group_4__0 ) )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1745:1: ( rule__OperationSpecial__Group_4__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOperationSpecialAccess().getGroup_4()); 
                    }
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1746:1: ( rule__OperationSpecial__Group_4__0 )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1746:2: rule__OperationSpecial__Group_4__0
                    {
                    pushFollow(FOLLOW_rule__OperationSpecial__Group_4__0_in_rule__OperationSpecial__Alternatives3777);
                    rule__OperationSpecial__Group_4__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOperationSpecialAccess().getGroup_4()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Alternatives"


    // $ANTLR start "rule__AttributeExtendedAttribute__Alternatives"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1755:1: rule__AttributeExtendedAttribute__Alternatives : ( ( rulePutForwards ) | ( ruleReplaceable ) | ( ruleTreatNullAs ) | ( ruleTreatUndefinedAs ) );
    public final void rule__AttributeExtendedAttribute__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1759:1: ( ( rulePutForwards ) | ( ruleReplaceable ) | ( ruleTreatNullAs ) | ( ruleTreatUndefinedAs ) )
            int alt13=4;
            switch ( input.LA(1) ) {
            case 39:
                {
                alt13=1;
                }
                break;
            case 44:
                {
                alt13=2;
                }
                break;
            case 40:
                {
                alt13=3;
                }
                break;
            case 42:
                {
                alt13=4;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 13, 0, input);

                throw nvae;
            }

            switch (alt13) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1760:1: ( rulePutForwards )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1760:1: ( rulePutForwards )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1761:1: rulePutForwards
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAttributeExtendedAttributeAccess().getPutForwardsParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_rulePutForwards_in_rule__AttributeExtendedAttribute__Alternatives3810);
                    rulePutForwards();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAttributeExtendedAttributeAccess().getPutForwardsParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1766:6: ( ruleReplaceable )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1766:6: ( ruleReplaceable )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1767:1: ruleReplaceable
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAttributeExtendedAttributeAccess().getReplaceableParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleReplaceable_in_rule__AttributeExtendedAttribute__Alternatives3827);
                    ruleReplaceable();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAttributeExtendedAttributeAccess().getReplaceableParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1772:6: ( ruleTreatNullAs )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1772:6: ( ruleTreatNullAs )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1773:1: ruleTreatNullAs
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAttributeExtendedAttributeAccess().getTreatNullAsParserRuleCall_2()); 
                    }
                    pushFollow(FOLLOW_ruleTreatNullAs_in_rule__AttributeExtendedAttribute__Alternatives3844);
                    ruleTreatNullAs();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAttributeExtendedAttributeAccess().getTreatNullAsParserRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1778:6: ( ruleTreatUndefinedAs )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1778:6: ( ruleTreatUndefinedAs )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1779:1: ruleTreatUndefinedAs
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAttributeExtendedAttributeAccess().getTreatUndefinedAsParserRuleCall_3()); 
                    }
                    pushFollow(FOLLOW_ruleTreatUndefinedAs_in_rule__AttributeExtendedAttribute__Alternatives3861);
                    ruleTreatUndefinedAs();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAttributeExtendedAttributeAccess().getTreatUndefinedAsParserRuleCall_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AttributeExtendedAttribute__Alternatives"


    // $ANTLR start "rule__ExceptionMember__Alternatives"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1789:1: rule__ExceptionMember__Alternatives : ( ( ruleConst ) | ( ruleExceptionField ) );
    public final void rule__ExceptionMember__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1793:1: ( ( ruleConst ) | ( ruleExceptionField ) )
            int alt14=2;
            int LA14_0 = input.LA(1);

            if ( (LA14_0==68) ) {
                alt14=1;
            }
            else if ( (LA14_0==RULE_ID||(LA14_0>=12 && LA14_0<=23)||LA14_0==27||LA14_0==71) ) {
                alt14=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 14, 0, input);

                throw nvae;
            }
            switch (alt14) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1794:1: ( ruleConst )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1794:1: ( ruleConst )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1795:1: ruleConst
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getExceptionMemberAccess().getConstParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleConst_in_rule__ExceptionMember__Alternatives3893);
                    ruleConst();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getExceptionMemberAccess().getConstParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1800:6: ( ruleExceptionField )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1800:6: ( ruleExceptionField )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1801:1: ruleExceptionField
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getExceptionMemberAccess().getExceptionFieldParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleExceptionField_in_rule__ExceptionMember__Alternatives3910);
                    ruleExceptionField();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getExceptionMemberAccess().getExceptionFieldParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ExceptionMember__Alternatives"


    // $ANTLR start "rule__ArgumentExtendedAttribute__Alternatives"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1811:1: rule__ArgumentExtendedAttribute__Alternatives : ( ( ruleAllowAny ) | ( ruleTreatNullAs ) | ( ruleTreatUndefinedAs ) );
    public final void rule__ArgumentExtendedAttribute__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1815:1: ( ( ruleAllowAny ) | ( ruleTreatNullAs ) | ( ruleTreatUndefinedAs ) )
            int alt15=3;
            switch ( input.LA(1) ) {
            case 43:
                {
                alt15=1;
                }
                break;
            case 40:
                {
                alt15=2;
                }
                break;
            case 42:
                {
                alt15=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 15, 0, input);

                throw nvae;
            }

            switch (alt15) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1816:1: ( ruleAllowAny )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1816:1: ( ruleAllowAny )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1817:1: ruleAllowAny
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getArgumentExtendedAttributeAccess().getAllowAnyParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleAllowAny_in_rule__ArgumentExtendedAttribute__Alternatives3942);
                    ruleAllowAny();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getArgumentExtendedAttributeAccess().getAllowAnyParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1822:6: ( ruleTreatNullAs )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1822:6: ( ruleTreatNullAs )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1823:1: ruleTreatNullAs
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getArgumentExtendedAttributeAccess().getTreatNullAsParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleTreatNullAs_in_rule__ArgumentExtendedAttribute__Alternatives3959);
                    ruleTreatNullAs();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getArgumentExtendedAttributeAccess().getTreatNullAsParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1828:6: ( ruleTreatUndefinedAs )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1828:6: ( ruleTreatUndefinedAs )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1829:1: ruleTreatUndefinedAs
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getArgumentExtendedAttributeAccess().getTreatUndefinedAsParserRuleCall_2()); 
                    }
                    pushFollow(FOLLOW_ruleTreatUndefinedAs_in_rule__ArgumentExtendedAttribute__Alternatives3976);
                    ruleTreatUndefinedAs();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getArgumentExtendedAttributeAccess().getTreatUndefinedAsParserRuleCall_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ArgumentExtendedAttribute__Alternatives"


    // $ANTLR start "rule__ConstExpr__Alternatives"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1839:1: rule__ConstExpr__Alternatives : ( ( ( rule__ConstExpr__Group_0__0 ) ) | ( ( rule__ConstExpr__Group_1__0 ) ) );
    public final void rule__ConstExpr__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1843:1: ( ( ( rule__ConstExpr__Group_0__0 ) ) | ( ( rule__ConstExpr__Group_1__0 ) ) )
            int alt16=2;
            int LA16_0 = input.LA(1);

            if ( (LA16_0==RULE_STRING) ) {
                alt16=1;
            }
            else if ( (LA16_0==RULE_INT||LA16_0==69) ) {
                alt16=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 16, 0, input);

                throw nvae;
            }
            switch (alt16) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1844:1: ( ( rule__ConstExpr__Group_0__0 ) )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1844:1: ( ( rule__ConstExpr__Group_0__0 ) )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1845:1: ( rule__ConstExpr__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getConstExprAccess().getGroup_0()); 
                    }
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1846:1: ( rule__ConstExpr__Group_0__0 )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1846:2: rule__ConstExpr__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__ConstExpr__Group_0__0_in_rule__ConstExpr__Alternatives4008);
                    rule__ConstExpr__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getConstExprAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1850:6: ( ( rule__ConstExpr__Group_1__0 ) )
                    {
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1850:6: ( ( rule__ConstExpr__Group_1__0 ) )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1851:1: ( rule__ConstExpr__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getConstExprAccess().getGroup_1()); 
                    }
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1852:1: ( rule__ConstExpr__Group_1__0 )
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1852:2: rule__ConstExpr__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__ConstExpr__Group_1__0_in_rule__ConstExpr__Alternatives4026);
                    rule__ConstExpr__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getConstExprAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConstExpr__Alternatives"


    // $ANTLR start "rule__IDLDefinitions__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1863:1: rule__IDLDefinitions__Group__0 : rule__IDLDefinitions__Group__0__Impl rule__IDLDefinitions__Group__1 ;
    public final void rule__IDLDefinitions__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1867:1: ( rule__IDLDefinitions__Group__0__Impl rule__IDLDefinitions__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1868:2: rule__IDLDefinitions__Group__0__Impl rule__IDLDefinitions__Group__1
            {
            pushFollow(FOLLOW_rule__IDLDefinitions__Group__0__Impl_in_rule__IDLDefinitions__Group__04057);
            rule__IDLDefinitions__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__IDLDefinitions__Group__1_in_rule__IDLDefinitions__Group__04060);
            rule__IDLDefinitions__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__IDLDefinitions__Group__0"


    // $ANTLR start "rule__IDLDefinitions__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1875:1: rule__IDLDefinitions__Group__0__Impl : ( ( rule__IDLDefinitions__ImportsAssignment_0 )* ) ;
    public final void rule__IDLDefinitions__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1879:1: ( ( ( rule__IDLDefinitions__ImportsAssignment_0 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1880:1: ( ( rule__IDLDefinitions__ImportsAssignment_0 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1880:1: ( ( rule__IDLDefinitions__ImportsAssignment_0 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1881:1: ( rule__IDLDefinitions__ImportsAssignment_0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIDLDefinitionsAccess().getImportsAssignment_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1882:1: ( rule__IDLDefinitions__ImportsAssignment_0 )*
            loop17:
            do {
                int alt17=2;
                int LA17_0 = input.LA(1);

                if ( (LA17_0==24) ) {
                    alt17=1;
                }


                switch (alt17) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1882:2: rule__IDLDefinitions__ImportsAssignment_0
            	    {
            	    pushFollow(FOLLOW_rule__IDLDefinitions__ImportsAssignment_0_in_rule__IDLDefinitions__Group__0__Impl4087);
            	    rule__IDLDefinitions__ImportsAssignment_0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop17;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getIDLDefinitionsAccess().getImportsAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__IDLDefinitions__Group__0__Impl"


    // $ANTLR start "rule__IDLDefinitions__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1892:1: rule__IDLDefinitions__Group__1 : rule__IDLDefinitions__Group__1__Impl ;
    public final void rule__IDLDefinitions__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1896:1: ( rule__IDLDefinitions__Group__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1897:2: rule__IDLDefinitions__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__IDLDefinitions__Group__1__Impl_in_rule__IDLDefinitions__Group__14118);
            rule__IDLDefinitions__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__IDLDefinitions__Group__1"


    // $ANTLR start "rule__IDLDefinitions__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1903:1: rule__IDLDefinitions__Group__1__Impl : ( ( rule__IDLDefinitions__DefinitionsAssignment_1 )* ) ;
    public final void rule__IDLDefinitions__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1907:1: ( ( ( rule__IDLDefinitions__DefinitionsAssignment_1 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1908:1: ( ( rule__IDLDefinitions__DefinitionsAssignment_1 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1908:1: ( ( rule__IDLDefinitions__DefinitionsAssignment_1 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1909:1: ( rule__IDLDefinitions__DefinitionsAssignment_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIDLDefinitionsAccess().getDefinitionsAssignment_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1910:1: ( rule__IDLDefinitions__DefinitionsAssignment_1 )*
            loop18:
            do {
                int alt18=2;
                int LA18_0 = input.LA(1);

                if ( (LA18_0==RULE_ID||LA18_0==26||LA18_0==48||LA18_0==51||LA18_0==55||LA18_0==67) ) {
                    alt18=1;
                }


                switch (alt18) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1910:2: rule__IDLDefinitions__DefinitionsAssignment_1
            	    {
            	    pushFollow(FOLLOW_rule__IDLDefinitions__DefinitionsAssignment_1_in_rule__IDLDefinitions__Group__1__Impl4145);
            	    rule__IDLDefinitions__DefinitionsAssignment_1();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop18;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getIDLDefinitionsAccess().getDefinitionsAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__IDLDefinitions__Group__1__Impl"


    // $ANTLR start "rule__Import__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1924:1: rule__Import__Group__0 : rule__Import__Group__0__Impl rule__Import__Group__1 ;
    public final void rule__Import__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1928:1: ( rule__Import__Group__0__Impl rule__Import__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1929:2: rule__Import__Group__0__Impl rule__Import__Group__1
            {
            pushFollow(FOLLOW_rule__Import__Group__0__Impl_in_rule__Import__Group__04180);
            rule__Import__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Import__Group__1_in_rule__Import__Group__04183);
            rule__Import__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Import__Group__0"


    // $ANTLR start "rule__Import__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1936:1: rule__Import__Group__0__Impl : ( 'import' ) ;
    public final void rule__Import__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1940:1: ( ( 'import' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1941:1: ( 'import' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1941:1: ( 'import' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1942:1: 'import'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getImportAccess().getImportKeyword_0()); 
            }
            match(input,24,FOLLOW_24_in_rule__Import__Group__0__Impl4211); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getImportAccess().getImportKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Import__Group__0__Impl"


    // $ANTLR start "rule__Import__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1955:1: rule__Import__Group__1 : rule__Import__Group__1__Impl rule__Import__Group__2 ;
    public final void rule__Import__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1959:1: ( rule__Import__Group__1__Impl rule__Import__Group__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1960:2: rule__Import__Group__1__Impl rule__Import__Group__2
            {
            pushFollow(FOLLOW_rule__Import__Group__1__Impl_in_rule__Import__Group__14242);
            rule__Import__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Import__Group__2_in_rule__Import__Group__14245);
            rule__Import__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Import__Group__1"


    // $ANTLR start "rule__Import__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1967:1: rule__Import__Group__1__Impl : ( ( rule__Import__ImportURIAssignment_1 ) ) ;
    public final void rule__Import__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1971:1: ( ( ( rule__Import__ImportURIAssignment_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1972:1: ( ( rule__Import__ImportURIAssignment_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1972:1: ( ( rule__Import__ImportURIAssignment_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1973:1: ( rule__Import__ImportURIAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getImportAccess().getImportURIAssignment_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1974:1: ( rule__Import__ImportURIAssignment_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1974:2: rule__Import__ImportURIAssignment_1
            {
            pushFollow(FOLLOW_rule__Import__ImportURIAssignment_1_in_rule__Import__Group__1__Impl4272);
            rule__Import__ImportURIAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getImportAccess().getImportURIAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Import__Group__1__Impl"


    // $ANTLR start "rule__Import__Group__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1984:1: rule__Import__Group__2 : rule__Import__Group__2__Impl ;
    public final void rule__Import__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1988:1: ( rule__Import__Group__2__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1989:2: rule__Import__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__Import__Group__2__Impl_in_rule__Import__Group__24302);
            rule__Import__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Import__Group__2"


    // $ANTLR start "rule__Import__Group__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1995:1: rule__Import__Group__2__Impl : ( ';' ) ;
    public final void rule__Import__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:1999:1: ( ( ';' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2000:1: ( ';' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2000:1: ( ';' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2001:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getImportAccess().getSemicolonKeyword_2()); 
            }
            match(input,25,FOLLOW_25_in_rule__Import__Group__2__Impl4330); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getImportAccess().getSemicolonKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Import__Group__2__Impl"


    // $ANTLR start "rule__TypeDef__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2020:1: rule__TypeDef__Group__0 : rule__TypeDef__Group__0__Impl rule__TypeDef__Group__1 ;
    public final void rule__TypeDef__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2024:1: ( rule__TypeDef__Group__0__Impl rule__TypeDef__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2025:2: rule__TypeDef__Group__0__Impl rule__TypeDef__Group__1
            {
            pushFollow(FOLLOW_rule__TypeDef__Group__0__Impl_in_rule__TypeDef__Group__04367);
            rule__TypeDef__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TypeDef__Group__1_in_rule__TypeDef__Group__04370);
            rule__TypeDef__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__Group__0"


    // $ANTLR start "rule__TypeDef__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2032:1: rule__TypeDef__Group__0__Impl : ( 'typedef' ) ;
    public final void rule__TypeDef__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2036:1: ( ( 'typedef' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2037:1: ( 'typedef' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2037:1: ( 'typedef' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2038:1: 'typedef'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeDefAccess().getTypedefKeyword_0()); 
            }
            match(input,26,FOLLOW_26_in_rule__TypeDef__Group__0__Impl4398); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeDefAccess().getTypedefKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__Group__0__Impl"


    // $ANTLR start "rule__TypeDef__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2051:1: rule__TypeDef__Group__1 : rule__TypeDef__Group__1__Impl rule__TypeDef__Group__2 ;
    public final void rule__TypeDef__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2055:1: ( rule__TypeDef__Group__1__Impl rule__TypeDef__Group__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2056:2: rule__TypeDef__Group__1__Impl rule__TypeDef__Group__2
            {
            pushFollow(FOLLOW_rule__TypeDef__Group__1__Impl_in_rule__TypeDef__Group__14429);
            rule__TypeDef__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TypeDef__Group__2_in_rule__TypeDef__Group__14432);
            rule__TypeDef__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__Group__1"


    // $ANTLR start "rule__TypeDef__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2063:1: rule__TypeDef__Group__1__Impl : ( ( rule__TypeDef__TypeAssignment_1 ) ) ;
    public final void rule__TypeDef__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2067:1: ( ( ( rule__TypeDef__TypeAssignment_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2068:1: ( ( rule__TypeDef__TypeAssignment_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2068:1: ( ( rule__TypeDef__TypeAssignment_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2069:1: ( rule__TypeDef__TypeAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeDefAccess().getTypeAssignment_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2070:1: ( rule__TypeDef__TypeAssignment_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2070:2: rule__TypeDef__TypeAssignment_1
            {
            pushFollow(FOLLOW_rule__TypeDef__TypeAssignment_1_in_rule__TypeDef__Group__1__Impl4459);
            rule__TypeDef__TypeAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeDefAccess().getTypeAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__Group__1__Impl"


    // $ANTLR start "rule__TypeDef__Group__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2080:1: rule__TypeDef__Group__2 : rule__TypeDef__Group__2__Impl rule__TypeDef__Group__3 ;
    public final void rule__TypeDef__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2084:1: ( rule__TypeDef__Group__2__Impl rule__TypeDef__Group__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2085:2: rule__TypeDef__Group__2__Impl rule__TypeDef__Group__3
            {
            pushFollow(FOLLOW_rule__TypeDef__Group__2__Impl_in_rule__TypeDef__Group__24489);
            rule__TypeDef__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TypeDef__Group__3_in_rule__TypeDef__Group__24492);
            rule__TypeDef__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__Group__2"


    // $ANTLR start "rule__TypeDef__Group__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2092:1: rule__TypeDef__Group__2__Impl : ( ( rule__TypeDef__NameAssignment_2 ) ) ;
    public final void rule__TypeDef__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2096:1: ( ( ( rule__TypeDef__NameAssignment_2 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2097:1: ( ( rule__TypeDef__NameAssignment_2 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2097:1: ( ( rule__TypeDef__NameAssignment_2 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2098:1: ( rule__TypeDef__NameAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeDefAccess().getNameAssignment_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2099:1: ( rule__TypeDef__NameAssignment_2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2099:2: rule__TypeDef__NameAssignment_2
            {
            pushFollow(FOLLOW_rule__TypeDef__NameAssignment_2_in_rule__TypeDef__Group__2__Impl4519);
            rule__TypeDef__NameAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeDefAccess().getNameAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__Group__2__Impl"


    // $ANTLR start "rule__TypeDef__Group__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2109:1: rule__TypeDef__Group__3 : rule__TypeDef__Group__3__Impl ;
    public final void rule__TypeDef__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2113:1: ( rule__TypeDef__Group__3__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2114:2: rule__TypeDef__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__TypeDef__Group__3__Impl_in_rule__TypeDef__Group__34549);
            rule__TypeDef__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__Group__3"


    // $ANTLR start "rule__TypeDef__Group__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2120:1: rule__TypeDef__Group__3__Impl : ( ';' ) ;
    public final void rule__TypeDef__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2124:1: ( ( ';' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2125:1: ( ';' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2125:1: ( ';' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2126:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeDefAccess().getSemicolonKeyword_3()); 
            }
            match(input,25,FOLLOW_25_in_rule__TypeDef__Group__3__Impl4577); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeDefAccess().getSemicolonKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__Group__3__Impl"


    // $ANTLR start "rule__TypeRef__Group_0__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2147:1: rule__TypeRef__Group_0__0 : rule__TypeRef__Group_0__0__Impl rule__TypeRef__Group_0__1 ;
    public final void rule__TypeRef__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2151:1: ( rule__TypeRef__Group_0__0__Impl rule__TypeRef__Group_0__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2152:2: rule__TypeRef__Group_0__0__Impl rule__TypeRef__Group_0__1
            {
            pushFollow(FOLLOW_rule__TypeRef__Group_0__0__Impl_in_rule__TypeRef__Group_0__04616);
            rule__TypeRef__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TypeRef__Group_0__1_in_rule__TypeRef__Group_0__04619);
            rule__TypeRef__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeRef__Group_0__0"


    // $ANTLR start "rule__TypeRef__Group_0__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2159:1: rule__TypeRef__Group_0__0__Impl : ( rulePrimitiveTypeRef ) ;
    public final void rule__TypeRef__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2163:1: ( ( rulePrimitiveTypeRef ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2164:1: ( rulePrimitiveTypeRef )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2164:1: ( rulePrimitiveTypeRef )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2165:1: rulePrimitiveTypeRef
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeRefAccess().getPrimitiveTypeRefParserRuleCall_0_0()); 
            }
            pushFollow(FOLLOW_rulePrimitiveTypeRef_in_rule__TypeRef__Group_0__0__Impl4646);
            rulePrimitiveTypeRef();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeRefAccess().getPrimitiveTypeRefParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeRef__Group_0__0__Impl"


    // $ANTLR start "rule__TypeRef__Group_0__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2176:1: rule__TypeRef__Group_0__1 : rule__TypeRef__Group_0__1__Impl ;
    public final void rule__TypeRef__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2180:1: ( rule__TypeRef__Group_0__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2181:2: rule__TypeRef__Group_0__1__Impl
            {
            pushFollow(FOLLOW_rule__TypeRef__Group_0__1__Impl_in_rule__TypeRef__Group_0__14675);
            rule__TypeRef__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeRef__Group_0__1"


    // $ANTLR start "rule__TypeRef__Group_0__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2187:1: rule__TypeRef__Group_0__1__Impl : ( ( rule__TypeRef__IsArrayAssignment_0_1 )? ) ;
    public final void rule__TypeRef__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2191:1: ( ( ( rule__TypeRef__IsArrayAssignment_0_1 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2192:1: ( ( rule__TypeRef__IsArrayAssignment_0_1 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2192:1: ( ( rule__TypeRef__IsArrayAssignment_0_1 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2193:1: ( rule__TypeRef__IsArrayAssignment_0_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeRefAccess().getIsArrayAssignment_0_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2194:1: ( rule__TypeRef__IsArrayAssignment_0_1 )?
            int alt19=2;
            int LA19_0 = input.LA(1);

            if ( (LA19_0==70) ) {
                alt19=1;
            }
            switch (alt19) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2194:2: rule__TypeRef__IsArrayAssignment_0_1
                    {
                    pushFollow(FOLLOW_rule__TypeRef__IsArrayAssignment_0_1_in_rule__TypeRef__Group_0__1__Impl4702);
                    rule__TypeRef__IsArrayAssignment_0_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeRefAccess().getIsArrayAssignment_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeRef__Group_0__1__Impl"


    // $ANTLR start "rule__TypeRef__Group_1__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2208:1: rule__TypeRef__Group_1__0 : rule__TypeRef__Group_1__0__Impl rule__TypeRef__Group_1__1 ;
    public final void rule__TypeRef__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2212:1: ( rule__TypeRef__Group_1__0__Impl rule__TypeRef__Group_1__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2213:2: rule__TypeRef__Group_1__0__Impl rule__TypeRef__Group_1__1
            {
            pushFollow(FOLLOW_rule__TypeRef__Group_1__0__Impl_in_rule__TypeRef__Group_1__04737);
            rule__TypeRef__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TypeRef__Group_1__1_in_rule__TypeRef__Group_1__04740);
            rule__TypeRef__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeRef__Group_1__0"


    // $ANTLR start "rule__TypeRef__Group_1__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2220:1: rule__TypeRef__Group_1__0__Impl : ( ruleSequenceType ) ;
    public final void rule__TypeRef__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2224:1: ( ( ruleSequenceType ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2225:1: ( ruleSequenceType )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2225:1: ( ruleSequenceType )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2226:1: ruleSequenceType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeRefAccess().getSequenceTypeParserRuleCall_1_0()); 
            }
            pushFollow(FOLLOW_ruleSequenceType_in_rule__TypeRef__Group_1__0__Impl4767);
            ruleSequenceType();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeRefAccess().getSequenceTypeParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeRef__Group_1__0__Impl"


    // $ANTLR start "rule__TypeRef__Group_1__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2237:1: rule__TypeRef__Group_1__1 : rule__TypeRef__Group_1__1__Impl ;
    public final void rule__TypeRef__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2241:1: ( rule__TypeRef__Group_1__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2242:2: rule__TypeRef__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__TypeRef__Group_1__1__Impl_in_rule__TypeRef__Group_1__14796);
            rule__TypeRef__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeRef__Group_1__1"


    // $ANTLR start "rule__TypeRef__Group_1__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2248:1: rule__TypeRef__Group_1__1__Impl : ( ( rule__TypeRef__IsArrayAssignment_1_1 )? ) ;
    public final void rule__TypeRef__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2252:1: ( ( ( rule__TypeRef__IsArrayAssignment_1_1 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2253:1: ( ( rule__TypeRef__IsArrayAssignment_1_1 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2253:1: ( ( rule__TypeRef__IsArrayAssignment_1_1 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2254:1: ( rule__TypeRef__IsArrayAssignment_1_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeRefAccess().getIsArrayAssignment_1_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2255:1: ( rule__TypeRef__IsArrayAssignment_1_1 )?
            int alt20=2;
            int LA20_0 = input.LA(1);

            if ( (LA20_0==70) ) {
                alt20=1;
            }
            switch (alt20) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2255:2: rule__TypeRef__IsArrayAssignment_1_1
                    {
                    pushFollow(FOLLOW_rule__TypeRef__IsArrayAssignment_1_1_in_rule__TypeRef__Group_1__1__Impl4823);
                    rule__TypeRef__IsArrayAssignment_1_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeRefAccess().getIsArrayAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeRef__Group_1__1__Impl"


    // $ANTLR start "rule__TypeRef__Group_2__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2269:1: rule__TypeRef__Group_2__0 : rule__TypeRef__Group_2__0__Impl rule__TypeRef__Group_2__1 ;
    public final void rule__TypeRef__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2273:1: ( rule__TypeRef__Group_2__0__Impl rule__TypeRef__Group_2__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2274:2: rule__TypeRef__Group_2__0__Impl rule__TypeRef__Group_2__1
            {
            pushFollow(FOLLOW_rule__TypeRef__Group_2__0__Impl_in_rule__TypeRef__Group_2__04858);
            rule__TypeRef__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TypeRef__Group_2__1_in_rule__TypeRef__Group_2__04861);
            rule__TypeRef__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeRef__Group_2__0"


    // $ANTLR start "rule__TypeRef__Group_2__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2281:1: rule__TypeRef__Group_2__0__Impl : ( ruleUserTypeRef ) ;
    public final void rule__TypeRef__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2285:1: ( ( ruleUserTypeRef ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2286:1: ( ruleUserTypeRef )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2286:1: ( ruleUserTypeRef )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2287:1: ruleUserTypeRef
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeRefAccess().getUserTypeRefParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleUserTypeRef_in_rule__TypeRef__Group_2__0__Impl4888);
            ruleUserTypeRef();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeRefAccess().getUserTypeRefParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeRef__Group_2__0__Impl"


    // $ANTLR start "rule__TypeRef__Group_2__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2298:1: rule__TypeRef__Group_2__1 : rule__TypeRef__Group_2__1__Impl ;
    public final void rule__TypeRef__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2302:1: ( rule__TypeRef__Group_2__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2303:2: rule__TypeRef__Group_2__1__Impl
            {
            pushFollow(FOLLOW_rule__TypeRef__Group_2__1__Impl_in_rule__TypeRef__Group_2__14917);
            rule__TypeRef__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeRef__Group_2__1"


    // $ANTLR start "rule__TypeRef__Group_2__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2309:1: rule__TypeRef__Group_2__1__Impl : ( ( rule__TypeRef__IsArrayAssignment_2_1 )? ) ;
    public final void rule__TypeRef__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2313:1: ( ( ( rule__TypeRef__IsArrayAssignment_2_1 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2314:1: ( ( rule__TypeRef__IsArrayAssignment_2_1 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2314:1: ( ( rule__TypeRef__IsArrayAssignment_2_1 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2315:1: ( rule__TypeRef__IsArrayAssignment_2_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeRefAccess().getIsArrayAssignment_2_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2316:1: ( rule__TypeRef__IsArrayAssignment_2_1 )?
            int alt21=2;
            int LA21_0 = input.LA(1);

            if ( (LA21_0==70) ) {
                alt21=1;
            }
            switch (alt21) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2316:2: rule__TypeRef__IsArrayAssignment_2_1
                    {
                    pushFollow(FOLLOW_rule__TypeRef__IsArrayAssignment_2_1_in_rule__TypeRef__Group_2__1__Impl4944);
                    rule__TypeRef__IsArrayAssignment_2_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeRefAccess().getIsArrayAssignment_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeRef__Group_2__1__Impl"


    // $ANTLR start "rule__PrimitiveTypeRef__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2330:1: rule__PrimitiveTypeRef__Group__0 : rule__PrimitiveTypeRef__Group__0__Impl rule__PrimitiveTypeRef__Group__1 ;
    public final void rule__PrimitiveTypeRef__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2334:1: ( rule__PrimitiveTypeRef__Group__0__Impl rule__PrimitiveTypeRef__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2335:2: rule__PrimitiveTypeRef__Group__0__Impl rule__PrimitiveTypeRef__Group__1
            {
            pushFollow(FOLLOW_rule__PrimitiveTypeRef__Group__0__Impl_in_rule__PrimitiveTypeRef__Group__04979);
            rule__PrimitiveTypeRef__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__PrimitiveTypeRef__Group__1_in_rule__PrimitiveTypeRef__Group__04982);
            rule__PrimitiveTypeRef__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PrimitiveTypeRef__Group__0"


    // $ANTLR start "rule__PrimitiveTypeRef__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2342:1: rule__PrimitiveTypeRef__Group__0__Impl : ( ( rule__PrimitiveTypeRef__UnsignedAssignment_0 )? ) ;
    public final void rule__PrimitiveTypeRef__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2346:1: ( ( ( rule__PrimitiveTypeRef__UnsignedAssignment_0 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2347:1: ( ( rule__PrimitiveTypeRef__UnsignedAssignment_0 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2347:1: ( ( rule__PrimitiveTypeRef__UnsignedAssignment_0 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2348:1: ( rule__PrimitiveTypeRef__UnsignedAssignment_0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimitiveTypeRefAccess().getUnsignedAssignment_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2349:1: ( rule__PrimitiveTypeRef__UnsignedAssignment_0 )?
            int alt22=2;
            int LA22_0 = input.LA(1);

            if ( (LA22_0==71) ) {
                alt22=1;
            }
            switch (alt22) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2349:2: rule__PrimitiveTypeRef__UnsignedAssignment_0
                    {
                    pushFollow(FOLLOW_rule__PrimitiveTypeRef__UnsignedAssignment_0_in_rule__PrimitiveTypeRef__Group__0__Impl5009);
                    rule__PrimitiveTypeRef__UnsignedAssignment_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimitiveTypeRefAccess().getUnsignedAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PrimitiveTypeRef__Group__0__Impl"


    // $ANTLR start "rule__PrimitiveTypeRef__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2359:1: rule__PrimitiveTypeRef__Group__1 : rule__PrimitiveTypeRef__Group__1__Impl rule__PrimitiveTypeRef__Group__2 ;
    public final void rule__PrimitiveTypeRef__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2363:1: ( rule__PrimitiveTypeRef__Group__1__Impl rule__PrimitiveTypeRef__Group__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2364:2: rule__PrimitiveTypeRef__Group__1__Impl rule__PrimitiveTypeRef__Group__2
            {
            pushFollow(FOLLOW_rule__PrimitiveTypeRef__Group__1__Impl_in_rule__PrimitiveTypeRef__Group__15040);
            rule__PrimitiveTypeRef__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__PrimitiveTypeRef__Group__2_in_rule__PrimitiveTypeRef__Group__15043);
            rule__PrimitiveTypeRef__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PrimitiveTypeRef__Group__1"


    // $ANTLR start "rule__PrimitiveTypeRef__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2371:1: rule__PrimitiveTypeRef__Group__1__Impl : ( ( ( rule__PrimitiveTypeRef__NameAssignment_1 ) ) ( ( rule__PrimitiveTypeRef__NameAssignment_1 )* ) ) ;
    public final void rule__PrimitiveTypeRef__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2375:1: ( ( ( ( rule__PrimitiveTypeRef__NameAssignment_1 ) ) ( ( rule__PrimitiveTypeRef__NameAssignment_1 )* ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2376:1: ( ( ( rule__PrimitiveTypeRef__NameAssignment_1 ) ) ( ( rule__PrimitiveTypeRef__NameAssignment_1 )* ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2376:1: ( ( ( rule__PrimitiveTypeRef__NameAssignment_1 ) ) ( ( rule__PrimitiveTypeRef__NameAssignment_1 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2377:1: ( ( rule__PrimitiveTypeRef__NameAssignment_1 ) ) ( ( rule__PrimitiveTypeRef__NameAssignment_1 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2377:1: ( ( rule__PrimitiveTypeRef__NameAssignment_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2378:1: ( rule__PrimitiveTypeRef__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimitiveTypeRefAccess().getNameAssignment_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2379:1: ( rule__PrimitiveTypeRef__NameAssignment_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2379:2: rule__PrimitiveTypeRef__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__PrimitiveTypeRef__NameAssignment_1_in_rule__PrimitiveTypeRef__Group__1__Impl5072);
            rule__PrimitiveTypeRef__NameAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimitiveTypeRefAccess().getNameAssignment_1()); 
            }

            }

            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2382:1: ( ( rule__PrimitiveTypeRef__NameAssignment_1 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2383:1: ( rule__PrimitiveTypeRef__NameAssignment_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimitiveTypeRefAccess().getNameAssignment_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2384:1: ( rule__PrimitiveTypeRef__NameAssignment_1 )*
            loop23:
            do {
                int alt23=2;
                int LA23_0 = input.LA(1);

                if ( ((LA23_0>=12 && LA23_0<=23)) ) {
                    alt23=1;
                }


                switch (alt23) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2384:2: rule__PrimitiveTypeRef__NameAssignment_1
            	    {
            	    pushFollow(FOLLOW_rule__PrimitiveTypeRef__NameAssignment_1_in_rule__PrimitiveTypeRef__Group__1__Impl5084);
            	    rule__PrimitiveTypeRef__NameAssignment_1();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop23;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimitiveTypeRefAccess().getNameAssignment_1()); 
            }

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PrimitiveTypeRef__Group__1__Impl"


    // $ANTLR start "rule__PrimitiveTypeRef__Group__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2395:1: rule__PrimitiveTypeRef__Group__2 : rule__PrimitiveTypeRef__Group__2__Impl ;
    public final void rule__PrimitiveTypeRef__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2399:1: ( rule__PrimitiveTypeRef__Group__2__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2400:2: rule__PrimitiveTypeRef__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__PrimitiveTypeRef__Group__2__Impl_in_rule__PrimitiveTypeRef__Group__25117);
            rule__PrimitiveTypeRef__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PrimitiveTypeRef__Group__2"


    // $ANTLR start "rule__PrimitiveTypeRef__Group__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2406:1: rule__PrimitiveTypeRef__Group__2__Impl : ( ( rule__PrimitiveTypeRef__NullableAssignment_2 )? ) ;
    public final void rule__PrimitiveTypeRef__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2410:1: ( ( ( rule__PrimitiveTypeRef__NullableAssignment_2 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2411:1: ( ( rule__PrimitiveTypeRef__NullableAssignment_2 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2411:1: ( ( rule__PrimitiveTypeRef__NullableAssignment_2 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2412:1: ( rule__PrimitiveTypeRef__NullableAssignment_2 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimitiveTypeRefAccess().getNullableAssignment_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2413:1: ( rule__PrimitiveTypeRef__NullableAssignment_2 )?
            int alt24=2;
            int LA24_0 = input.LA(1);

            if ( (LA24_0==72) ) {
                alt24=1;
            }
            switch (alt24) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2413:2: rule__PrimitiveTypeRef__NullableAssignment_2
                    {
                    pushFollow(FOLLOW_rule__PrimitiveTypeRef__NullableAssignment_2_in_rule__PrimitiveTypeRef__Group__2__Impl5144);
                    rule__PrimitiveTypeRef__NullableAssignment_2();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimitiveTypeRefAccess().getNullableAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PrimitiveTypeRef__Group__2__Impl"


    // $ANTLR start "rule__SequenceType__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2429:1: rule__SequenceType__Group__0 : rule__SequenceType__Group__0__Impl rule__SequenceType__Group__1 ;
    public final void rule__SequenceType__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2433:1: ( rule__SequenceType__Group__0__Impl rule__SequenceType__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2434:2: rule__SequenceType__Group__0__Impl rule__SequenceType__Group__1
            {
            pushFollow(FOLLOW_rule__SequenceType__Group__0__Impl_in_rule__SequenceType__Group__05181);
            rule__SequenceType__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__SequenceType__Group__1_in_rule__SequenceType__Group__05184);
            rule__SequenceType__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SequenceType__Group__0"


    // $ANTLR start "rule__SequenceType__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2441:1: rule__SequenceType__Group__0__Impl : ( 'sequence<' ) ;
    public final void rule__SequenceType__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2445:1: ( ( 'sequence<' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2446:1: ( 'sequence<' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2446:1: ( 'sequence<' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2447:1: 'sequence<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequenceTypeAccess().getSequenceKeyword_0()); 
            }
            match(input,27,FOLLOW_27_in_rule__SequenceType__Group__0__Impl5212); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequenceTypeAccess().getSequenceKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SequenceType__Group__0__Impl"


    // $ANTLR start "rule__SequenceType__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2460:1: rule__SequenceType__Group__1 : rule__SequenceType__Group__1__Impl rule__SequenceType__Group__2 ;
    public final void rule__SequenceType__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2464:1: ( rule__SequenceType__Group__1__Impl rule__SequenceType__Group__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2465:2: rule__SequenceType__Group__1__Impl rule__SequenceType__Group__2
            {
            pushFollow(FOLLOW_rule__SequenceType__Group__1__Impl_in_rule__SequenceType__Group__15243);
            rule__SequenceType__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__SequenceType__Group__2_in_rule__SequenceType__Group__15246);
            rule__SequenceType__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SequenceType__Group__1"


    // $ANTLR start "rule__SequenceType__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2472:1: rule__SequenceType__Group__1__Impl : ( ( rule__SequenceType__TypeAssignment_1 ) ) ;
    public final void rule__SequenceType__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2476:1: ( ( ( rule__SequenceType__TypeAssignment_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2477:1: ( ( rule__SequenceType__TypeAssignment_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2477:1: ( ( rule__SequenceType__TypeAssignment_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2478:1: ( rule__SequenceType__TypeAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequenceTypeAccess().getTypeAssignment_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2479:1: ( rule__SequenceType__TypeAssignment_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2479:2: rule__SequenceType__TypeAssignment_1
            {
            pushFollow(FOLLOW_rule__SequenceType__TypeAssignment_1_in_rule__SequenceType__Group__1__Impl5273);
            rule__SequenceType__TypeAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequenceTypeAccess().getTypeAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SequenceType__Group__1__Impl"


    // $ANTLR start "rule__SequenceType__Group__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2489:1: rule__SequenceType__Group__2 : rule__SequenceType__Group__2__Impl rule__SequenceType__Group__3 ;
    public final void rule__SequenceType__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2493:1: ( rule__SequenceType__Group__2__Impl rule__SequenceType__Group__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2494:2: rule__SequenceType__Group__2__Impl rule__SequenceType__Group__3
            {
            pushFollow(FOLLOW_rule__SequenceType__Group__2__Impl_in_rule__SequenceType__Group__25303);
            rule__SequenceType__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__SequenceType__Group__3_in_rule__SequenceType__Group__25306);
            rule__SequenceType__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SequenceType__Group__2"


    // $ANTLR start "rule__SequenceType__Group__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2501:1: rule__SequenceType__Group__2__Impl : ( '>' ) ;
    public final void rule__SequenceType__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2505:1: ( ( '>' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2506:1: ( '>' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2506:1: ( '>' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2507:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequenceTypeAccess().getGreaterThanSignKeyword_2()); 
            }
            match(input,28,FOLLOW_28_in_rule__SequenceType__Group__2__Impl5334); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequenceTypeAccess().getGreaterThanSignKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SequenceType__Group__2__Impl"


    // $ANTLR start "rule__SequenceType__Group__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2520:1: rule__SequenceType__Group__3 : rule__SequenceType__Group__3__Impl ;
    public final void rule__SequenceType__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2524:1: ( rule__SequenceType__Group__3__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2525:2: rule__SequenceType__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__SequenceType__Group__3__Impl_in_rule__SequenceType__Group__35365);
            rule__SequenceType__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SequenceType__Group__3"


    // $ANTLR start "rule__SequenceType__Group__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2531:1: rule__SequenceType__Group__3__Impl : ( ( rule__SequenceType__NullableAssignment_3 )? ) ;
    public final void rule__SequenceType__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2535:1: ( ( ( rule__SequenceType__NullableAssignment_3 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2536:1: ( ( rule__SequenceType__NullableAssignment_3 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2536:1: ( ( rule__SequenceType__NullableAssignment_3 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2537:1: ( rule__SequenceType__NullableAssignment_3 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequenceTypeAccess().getNullableAssignment_3()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2538:1: ( rule__SequenceType__NullableAssignment_3 )?
            int alt25=2;
            int LA25_0 = input.LA(1);

            if ( (LA25_0==72) ) {
                alt25=1;
            }
            switch (alt25) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2538:2: rule__SequenceType__NullableAssignment_3
                    {
                    pushFollow(FOLLOW_rule__SequenceType__NullableAssignment_3_in_rule__SequenceType__Group__3__Impl5392);
                    rule__SequenceType__NullableAssignment_3();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequenceTypeAccess().getNullableAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SequenceType__Group__3__Impl"


    // $ANTLR start "rule__ScopedName__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2556:1: rule__ScopedName__Group__0 : rule__ScopedName__Group__0__Impl rule__ScopedName__Group__1 ;
    public final void rule__ScopedName__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2560:1: ( rule__ScopedName__Group__0__Impl rule__ScopedName__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2561:2: rule__ScopedName__Group__0__Impl rule__ScopedName__Group__1
            {
            pushFollow(FOLLOW_rule__ScopedName__Group__0__Impl_in_rule__ScopedName__Group__05431);
            rule__ScopedName__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ScopedName__Group__1_in_rule__ScopedName__Group__05434);
            rule__ScopedName__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ScopedName__Group__0"


    // $ANTLR start "rule__ScopedName__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2568:1: rule__ScopedName__Group__0__Impl : ( RULE_ID ) ;
    public final void rule__ScopedName__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2572:1: ( ( RULE_ID ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2573:1: ( RULE_ID )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2573:1: ( RULE_ID )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2574:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getScopedNameAccess().getIDTerminalRuleCall_0()); 
            }
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ScopedName__Group__0__Impl5461); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getScopedNameAccess().getIDTerminalRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ScopedName__Group__0__Impl"


    // $ANTLR start "rule__ScopedName__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2585:1: rule__ScopedName__Group__1 : rule__ScopedName__Group__1__Impl ;
    public final void rule__ScopedName__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2589:1: ( rule__ScopedName__Group__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2590:2: rule__ScopedName__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__ScopedName__Group__1__Impl_in_rule__ScopedName__Group__15490);
            rule__ScopedName__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ScopedName__Group__1"


    // $ANTLR start "rule__ScopedName__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2596:1: rule__ScopedName__Group__1__Impl : ( ( rule__ScopedName__Group_1__0 )* ) ;
    public final void rule__ScopedName__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2600:1: ( ( ( rule__ScopedName__Group_1__0 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2601:1: ( ( rule__ScopedName__Group_1__0 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2601:1: ( ( rule__ScopedName__Group_1__0 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2602:1: ( rule__ScopedName__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getScopedNameAccess().getGroup_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2603:1: ( rule__ScopedName__Group_1__0 )*
            loop26:
            do {
                int alt26=2;
                int LA26_0 = input.LA(1);

                if ( (LA26_0==29) ) {
                    alt26=1;
                }


                switch (alt26) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2603:2: rule__ScopedName__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__ScopedName__Group_1__0_in_rule__ScopedName__Group__1__Impl5517);
            	    rule__ScopedName__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop26;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getScopedNameAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ScopedName__Group__1__Impl"


    // $ANTLR start "rule__ScopedName__Group_1__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2617:1: rule__ScopedName__Group_1__0 : rule__ScopedName__Group_1__0__Impl rule__ScopedName__Group_1__1 ;
    public final void rule__ScopedName__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2621:1: ( rule__ScopedName__Group_1__0__Impl rule__ScopedName__Group_1__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2622:2: rule__ScopedName__Group_1__0__Impl rule__ScopedName__Group_1__1
            {
            pushFollow(FOLLOW_rule__ScopedName__Group_1__0__Impl_in_rule__ScopedName__Group_1__05552);
            rule__ScopedName__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ScopedName__Group_1__1_in_rule__ScopedName__Group_1__05555);
            rule__ScopedName__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ScopedName__Group_1__0"


    // $ANTLR start "rule__ScopedName__Group_1__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2629:1: rule__ScopedName__Group_1__0__Impl : ( '::' ) ;
    public final void rule__ScopedName__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2633:1: ( ( '::' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2634:1: ( '::' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2634:1: ( '::' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2635:1: '::'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getScopedNameAccess().getColonColonKeyword_1_0()); 
            }
            match(input,29,FOLLOW_29_in_rule__ScopedName__Group_1__0__Impl5583); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getScopedNameAccess().getColonColonKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ScopedName__Group_1__0__Impl"


    // $ANTLR start "rule__ScopedName__Group_1__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2648:1: rule__ScopedName__Group_1__1 : rule__ScopedName__Group_1__1__Impl ;
    public final void rule__ScopedName__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2652:1: ( rule__ScopedName__Group_1__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2653:2: rule__ScopedName__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__ScopedName__Group_1__1__Impl_in_rule__ScopedName__Group_1__15614);
            rule__ScopedName__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ScopedName__Group_1__1"


    // $ANTLR start "rule__ScopedName__Group_1__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2659:1: rule__ScopedName__Group_1__1__Impl : ( RULE_ID ) ;
    public final void rule__ScopedName__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2663:1: ( ( RULE_ID ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2664:1: ( RULE_ID )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2664:1: ( RULE_ID )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2665:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getScopedNameAccess().getIDTerminalRuleCall_1_1()); 
            }
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ScopedName__Group_1__1__Impl5641); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getScopedNameAccess().getIDTerminalRuleCall_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ScopedName__Group_1__1__Impl"


    // $ANTLR start "rule__Constructor__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2681:1: rule__Constructor__Group__0 : rule__Constructor__Group__0__Impl rule__Constructor__Group__1 ;
    public final void rule__Constructor__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2685:1: ( rule__Constructor__Group__0__Impl rule__Constructor__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2686:2: rule__Constructor__Group__0__Impl rule__Constructor__Group__1
            {
            pushFollow(FOLLOW_rule__Constructor__Group__0__Impl_in_rule__Constructor__Group__05675);
            rule__Constructor__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Constructor__Group__1_in_rule__Constructor__Group__05678);
            rule__Constructor__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__Group__0"


    // $ANTLR start "rule__Constructor__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2693:1: rule__Constructor__Group__0__Impl : ( 'Constructor' ) ;
    public final void rule__Constructor__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2697:1: ( ( 'Constructor' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2698:1: ( 'Constructor' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2698:1: ( 'Constructor' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2699:1: 'Constructor'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstructorAccess().getConstructorKeyword_0()); 
            }
            match(input,30,FOLLOW_30_in_rule__Constructor__Group__0__Impl5706); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstructorAccess().getConstructorKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__Group__0__Impl"


    // $ANTLR start "rule__Constructor__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2712:1: rule__Constructor__Group__1 : rule__Constructor__Group__1__Impl rule__Constructor__Group__2 ;
    public final void rule__Constructor__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2716:1: ( rule__Constructor__Group__1__Impl rule__Constructor__Group__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2717:2: rule__Constructor__Group__1__Impl rule__Constructor__Group__2
            {
            pushFollow(FOLLOW_rule__Constructor__Group__1__Impl_in_rule__Constructor__Group__15737);
            rule__Constructor__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Constructor__Group__2_in_rule__Constructor__Group__15740);
            rule__Constructor__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__Group__1"


    // $ANTLR start "rule__Constructor__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2724:1: rule__Constructor__Group__1__Impl : ( () ) ;
    public final void rule__Constructor__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2728:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2729:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2729:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2730:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstructorAccess().getConstructorAction_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2731:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2733:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstructorAccess().getConstructorAction_1()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__Group__1__Impl"


    // $ANTLR start "rule__Constructor__Group__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2743:1: rule__Constructor__Group__2 : rule__Constructor__Group__2__Impl ;
    public final void rule__Constructor__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2747:1: ( rule__Constructor__Group__2__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2748:2: rule__Constructor__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__Constructor__Group__2__Impl_in_rule__Constructor__Group__25798);
            rule__Constructor__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__Group__2"


    // $ANTLR start "rule__Constructor__Group__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2754:1: rule__Constructor__Group__2__Impl : ( ( rule__Constructor__Group_2__0 )? ) ;
    public final void rule__Constructor__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2758:1: ( ( ( rule__Constructor__Group_2__0 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2759:1: ( ( rule__Constructor__Group_2__0 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2759:1: ( ( rule__Constructor__Group_2__0 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2760:1: ( rule__Constructor__Group_2__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstructorAccess().getGroup_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2761:1: ( rule__Constructor__Group_2__0 )?
            int alt27=2;
            int LA27_0 = input.LA(1);

            if ( (LA27_0==31) ) {
                alt27=1;
            }
            switch (alt27) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2761:2: rule__Constructor__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__Constructor__Group_2__0_in_rule__Constructor__Group__2__Impl5825);
                    rule__Constructor__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstructorAccess().getGroup_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__Group__2__Impl"


    // $ANTLR start "rule__Constructor__Group_2__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2777:1: rule__Constructor__Group_2__0 : rule__Constructor__Group_2__0__Impl rule__Constructor__Group_2__1 ;
    public final void rule__Constructor__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2781:1: ( rule__Constructor__Group_2__0__Impl rule__Constructor__Group_2__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2782:2: rule__Constructor__Group_2__0__Impl rule__Constructor__Group_2__1
            {
            pushFollow(FOLLOW_rule__Constructor__Group_2__0__Impl_in_rule__Constructor__Group_2__05862);
            rule__Constructor__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Constructor__Group_2__1_in_rule__Constructor__Group_2__05865);
            rule__Constructor__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__Group_2__0"


    // $ANTLR start "rule__Constructor__Group_2__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2789:1: rule__Constructor__Group_2__0__Impl : ( '(' ) ;
    public final void rule__Constructor__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2793:1: ( ( '(' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2794:1: ( '(' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2794:1: ( '(' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2795:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstructorAccess().getLeftParenthesisKeyword_2_0()); 
            }
            match(input,31,FOLLOW_31_in_rule__Constructor__Group_2__0__Impl5893); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstructorAccess().getLeftParenthesisKeyword_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__Group_2__0__Impl"


    // $ANTLR start "rule__Constructor__Group_2__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2808:1: rule__Constructor__Group_2__1 : rule__Constructor__Group_2__1__Impl rule__Constructor__Group_2__2 ;
    public final void rule__Constructor__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2812:1: ( rule__Constructor__Group_2__1__Impl rule__Constructor__Group_2__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2813:2: rule__Constructor__Group_2__1__Impl rule__Constructor__Group_2__2
            {
            pushFollow(FOLLOW_rule__Constructor__Group_2__1__Impl_in_rule__Constructor__Group_2__15924);
            rule__Constructor__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Constructor__Group_2__2_in_rule__Constructor__Group_2__15927);
            rule__Constructor__Group_2__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__Group_2__1"


    // $ANTLR start "rule__Constructor__Group_2__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2820:1: rule__Constructor__Group_2__1__Impl : ( ( rule__Constructor__ArgumentsAssignment_2_1 ) ) ;
    public final void rule__Constructor__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2824:1: ( ( ( rule__Constructor__ArgumentsAssignment_2_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2825:1: ( ( rule__Constructor__ArgumentsAssignment_2_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2825:1: ( ( rule__Constructor__ArgumentsAssignment_2_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2826:1: ( rule__Constructor__ArgumentsAssignment_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstructorAccess().getArgumentsAssignment_2_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2827:1: ( rule__Constructor__ArgumentsAssignment_2_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2827:2: rule__Constructor__ArgumentsAssignment_2_1
            {
            pushFollow(FOLLOW_rule__Constructor__ArgumentsAssignment_2_1_in_rule__Constructor__Group_2__1__Impl5954);
            rule__Constructor__ArgumentsAssignment_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstructorAccess().getArgumentsAssignment_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__Group_2__1__Impl"


    // $ANTLR start "rule__Constructor__Group_2__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2837:1: rule__Constructor__Group_2__2 : rule__Constructor__Group_2__2__Impl rule__Constructor__Group_2__3 ;
    public final void rule__Constructor__Group_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2841:1: ( rule__Constructor__Group_2__2__Impl rule__Constructor__Group_2__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2842:2: rule__Constructor__Group_2__2__Impl rule__Constructor__Group_2__3
            {
            pushFollow(FOLLOW_rule__Constructor__Group_2__2__Impl_in_rule__Constructor__Group_2__25984);
            rule__Constructor__Group_2__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Constructor__Group_2__3_in_rule__Constructor__Group_2__25987);
            rule__Constructor__Group_2__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__Group_2__2"


    // $ANTLR start "rule__Constructor__Group_2__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2849:1: rule__Constructor__Group_2__2__Impl : ( ( rule__Constructor__Group_2_2__0 )* ) ;
    public final void rule__Constructor__Group_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2853:1: ( ( ( rule__Constructor__Group_2_2__0 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2854:1: ( ( rule__Constructor__Group_2_2__0 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2854:1: ( ( rule__Constructor__Group_2_2__0 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2855:1: ( rule__Constructor__Group_2_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstructorAccess().getGroup_2_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2856:1: ( rule__Constructor__Group_2_2__0 )*
            loop28:
            do {
                int alt28=2;
                int LA28_0 = input.LA(1);

                if ( (LA28_0==33) ) {
                    alt28=1;
                }


                switch (alt28) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2856:2: rule__Constructor__Group_2_2__0
            	    {
            	    pushFollow(FOLLOW_rule__Constructor__Group_2_2__0_in_rule__Constructor__Group_2__2__Impl6014);
            	    rule__Constructor__Group_2_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop28;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstructorAccess().getGroup_2_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__Group_2__2__Impl"


    // $ANTLR start "rule__Constructor__Group_2__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2866:1: rule__Constructor__Group_2__3 : rule__Constructor__Group_2__3__Impl ;
    public final void rule__Constructor__Group_2__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2870:1: ( rule__Constructor__Group_2__3__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2871:2: rule__Constructor__Group_2__3__Impl
            {
            pushFollow(FOLLOW_rule__Constructor__Group_2__3__Impl_in_rule__Constructor__Group_2__36045);
            rule__Constructor__Group_2__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__Group_2__3"


    // $ANTLR start "rule__Constructor__Group_2__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2877:1: rule__Constructor__Group_2__3__Impl : ( ')' ) ;
    public final void rule__Constructor__Group_2__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2881:1: ( ( ')' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2882:1: ( ')' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2882:1: ( ')' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2883:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstructorAccess().getRightParenthesisKeyword_2_3()); 
            }
            match(input,32,FOLLOW_32_in_rule__Constructor__Group_2__3__Impl6073); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstructorAccess().getRightParenthesisKeyword_2_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__Group_2__3__Impl"


    // $ANTLR start "rule__Constructor__Group_2_2__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2904:1: rule__Constructor__Group_2_2__0 : rule__Constructor__Group_2_2__0__Impl rule__Constructor__Group_2_2__1 ;
    public final void rule__Constructor__Group_2_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2908:1: ( rule__Constructor__Group_2_2__0__Impl rule__Constructor__Group_2_2__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2909:2: rule__Constructor__Group_2_2__0__Impl rule__Constructor__Group_2_2__1
            {
            pushFollow(FOLLOW_rule__Constructor__Group_2_2__0__Impl_in_rule__Constructor__Group_2_2__06112);
            rule__Constructor__Group_2_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Constructor__Group_2_2__1_in_rule__Constructor__Group_2_2__06115);
            rule__Constructor__Group_2_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__Group_2_2__0"


    // $ANTLR start "rule__Constructor__Group_2_2__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2916:1: rule__Constructor__Group_2_2__0__Impl : ( ',' ) ;
    public final void rule__Constructor__Group_2_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2920:1: ( ( ',' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2921:1: ( ',' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2921:1: ( ',' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2922:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstructorAccess().getCommaKeyword_2_2_0()); 
            }
            match(input,33,FOLLOW_33_in_rule__Constructor__Group_2_2__0__Impl6143); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstructorAccess().getCommaKeyword_2_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__Group_2_2__0__Impl"


    // $ANTLR start "rule__Constructor__Group_2_2__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2935:1: rule__Constructor__Group_2_2__1 : rule__Constructor__Group_2_2__1__Impl ;
    public final void rule__Constructor__Group_2_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2939:1: ( rule__Constructor__Group_2_2__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2940:2: rule__Constructor__Group_2_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Constructor__Group_2_2__1__Impl_in_rule__Constructor__Group_2_2__16174);
            rule__Constructor__Group_2_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__Group_2_2__1"


    // $ANTLR start "rule__Constructor__Group_2_2__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2946:1: rule__Constructor__Group_2_2__1__Impl : ( ( rule__Constructor__ArgumentsAssignment_2_2_1 ) ) ;
    public final void rule__Constructor__Group_2_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2950:1: ( ( ( rule__Constructor__ArgumentsAssignment_2_2_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2951:1: ( ( rule__Constructor__ArgumentsAssignment_2_2_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2951:1: ( ( rule__Constructor__ArgumentsAssignment_2_2_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2952:1: ( rule__Constructor__ArgumentsAssignment_2_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstructorAccess().getArgumentsAssignment_2_2_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2953:1: ( rule__Constructor__ArgumentsAssignment_2_2_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2953:2: rule__Constructor__ArgumentsAssignment_2_2_1
            {
            pushFollow(FOLLOW_rule__Constructor__ArgumentsAssignment_2_2_1_in_rule__Constructor__Group_2_2__1__Impl6201);
            rule__Constructor__ArgumentsAssignment_2_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstructorAccess().getArgumentsAssignment_2_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__Group_2_2__1__Impl"


    // $ANTLR start "rule__NamedConstructor__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2967:1: rule__NamedConstructor__Group__0 : rule__NamedConstructor__Group__0__Impl rule__NamedConstructor__Group__1 ;
    public final void rule__NamedConstructor__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2971:1: ( rule__NamedConstructor__Group__0__Impl rule__NamedConstructor__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2972:2: rule__NamedConstructor__Group__0__Impl rule__NamedConstructor__Group__1
            {
            pushFollow(FOLLOW_rule__NamedConstructor__Group__0__Impl_in_rule__NamedConstructor__Group__06235);
            rule__NamedConstructor__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__NamedConstructor__Group__1_in_rule__NamedConstructor__Group__06238);
            rule__NamedConstructor__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group__0"


    // $ANTLR start "rule__NamedConstructor__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2979:1: rule__NamedConstructor__Group__0__Impl : ( 'NamedConstructor' ) ;
    public final void rule__NamedConstructor__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2983:1: ( ( 'NamedConstructor' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2984:1: ( 'NamedConstructor' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2984:1: ( 'NamedConstructor' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2985:1: 'NamedConstructor'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamedConstructorAccess().getNamedConstructorKeyword_0()); 
            }
            match(input,34,FOLLOW_34_in_rule__NamedConstructor__Group__0__Impl6266); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamedConstructorAccess().getNamedConstructorKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group__0__Impl"


    // $ANTLR start "rule__NamedConstructor__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:2998:1: rule__NamedConstructor__Group__1 : rule__NamedConstructor__Group__1__Impl rule__NamedConstructor__Group__2 ;
    public final void rule__NamedConstructor__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3002:1: ( rule__NamedConstructor__Group__1__Impl rule__NamedConstructor__Group__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3003:2: rule__NamedConstructor__Group__1__Impl rule__NamedConstructor__Group__2
            {
            pushFollow(FOLLOW_rule__NamedConstructor__Group__1__Impl_in_rule__NamedConstructor__Group__16297);
            rule__NamedConstructor__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__NamedConstructor__Group__2_in_rule__NamedConstructor__Group__16300);
            rule__NamedConstructor__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group__1"


    // $ANTLR start "rule__NamedConstructor__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3010:1: rule__NamedConstructor__Group__1__Impl : ( () ) ;
    public final void rule__NamedConstructor__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3014:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3015:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3015:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3016:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamedConstructorAccess().getConstructorAction_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3017:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3019:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamedConstructorAccess().getConstructorAction_1()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group__1__Impl"


    // $ANTLR start "rule__NamedConstructor__Group__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3029:1: rule__NamedConstructor__Group__2 : rule__NamedConstructor__Group__2__Impl rule__NamedConstructor__Group__3 ;
    public final void rule__NamedConstructor__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3033:1: ( rule__NamedConstructor__Group__2__Impl rule__NamedConstructor__Group__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3034:2: rule__NamedConstructor__Group__2__Impl rule__NamedConstructor__Group__3
            {
            pushFollow(FOLLOW_rule__NamedConstructor__Group__2__Impl_in_rule__NamedConstructor__Group__26358);
            rule__NamedConstructor__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__NamedConstructor__Group__3_in_rule__NamedConstructor__Group__26361);
            rule__NamedConstructor__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group__2"


    // $ANTLR start "rule__NamedConstructor__Group__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3041:1: rule__NamedConstructor__Group__2__Impl : ( '=' ) ;
    public final void rule__NamedConstructor__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3045:1: ( ( '=' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3046:1: ( '=' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3046:1: ( '=' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3047:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamedConstructorAccess().getEqualsSignKeyword_2()); 
            }
            match(input,35,FOLLOW_35_in_rule__NamedConstructor__Group__2__Impl6389); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamedConstructorAccess().getEqualsSignKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group__2__Impl"


    // $ANTLR start "rule__NamedConstructor__Group__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3060:1: rule__NamedConstructor__Group__3 : rule__NamedConstructor__Group__3__Impl rule__NamedConstructor__Group__4 ;
    public final void rule__NamedConstructor__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3064:1: ( rule__NamedConstructor__Group__3__Impl rule__NamedConstructor__Group__4 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3065:2: rule__NamedConstructor__Group__3__Impl rule__NamedConstructor__Group__4
            {
            pushFollow(FOLLOW_rule__NamedConstructor__Group__3__Impl_in_rule__NamedConstructor__Group__36420);
            rule__NamedConstructor__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__NamedConstructor__Group__4_in_rule__NamedConstructor__Group__36423);
            rule__NamedConstructor__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group__3"


    // $ANTLR start "rule__NamedConstructor__Group__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3072:1: rule__NamedConstructor__Group__3__Impl : ( ( rule__NamedConstructor__NameAssignment_3 ) ) ;
    public final void rule__NamedConstructor__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3076:1: ( ( ( rule__NamedConstructor__NameAssignment_3 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3077:1: ( ( rule__NamedConstructor__NameAssignment_3 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3077:1: ( ( rule__NamedConstructor__NameAssignment_3 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3078:1: ( rule__NamedConstructor__NameAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamedConstructorAccess().getNameAssignment_3()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3079:1: ( rule__NamedConstructor__NameAssignment_3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3079:2: rule__NamedConstructor__NameAssignment_3
            {
            pushFollow(FOLLOW_rule__NamedConstructor__NameAssignment_3_in_rule__NamedConstructor__Group__3__Impl6450);
            rule__NamedConstructor__NameAssignment_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamedConstructorAccess().getNameAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group__3__Impl"


    // $ANTLR start "rule__NamedConstructor__Group__4"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3089:1: rule__NamedConstructor__Group__4 : rule__NamedConstructor__Group__4__Impl ;
    public final void rule__NamedConstructor__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3093:1: ( rule__NamedConstructor__Group__4__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3094:2: rule__NamedConstructor__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__NamedConstructor__Group__4__Impl_in_rule__NamedConstructor__Group__46480);
            rule__NamedConstructor__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group__4"


    // $ANTLR start "rule__NamedConstructor__Group__4__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3100:1: rule__NamedConstructor__Group__4__Impl : ( ( rule__NamedConstructor__Group_4__0 )? ) ;
    public final void rule__NamedConstructor__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3104:1: ( ( ( rule__NamedConstructor__Group_4__0 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3105:1: ( ( rule__NamedConstructor__Group_4__0 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3105:1: ( ( rule__NamedConstructor__Group_4__0 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3106:1: ( rule__NamedConstructor__Group_4__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamedConstructorAccess().getGroup_4()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3107:1: ( rule__NamedConstructor__Group_4__0 )?
            int alt29=2;
            int LA29_0 = input.LA(1);

            if ( (LA29_0==31) ) {
                alt29=1;
            }
            switch (alt29) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3107:2: rule__NamedConstructor__Group_4__0
                    {
                    pushFollow(FOLLOW_rule__NamedConstructor__Group_4__0_in_rule__NamedConstructor__Group__4__Impl6507);
                    rule__NamedConstructor__Group_4__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamedConstructorAccess().getGroup_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group__4__Impl"


    // $ANTLR start "rule__NamedConstructor__Group_4__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3127:1: rule__NamedConstructor__Group_4__0 : rule__NamedConstructor__Group_4__0__Impl rule__NamedConstructor__Group_4__1 ;
    public final void rule__NamedConstructor__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3131:1: ( rule__NamedConstructor__Group_4__0__Impl rule__NamedConstructor__Group_4__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3132:2: rule__NamedConstructor__Group_4__0__Impl rule__NamedConstructor__Group_4__1
            {
            pushFollow(FOLLOW_rule__NamedConstructor__Group_4__0__Impl_in_rule__NamedConstructor__Group_4__06548);
            rule__NamedConstructor__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__NamedConstructor__Group_4__1_in_rule__NamedConstructor__Group_4__06551);
            rule__NamedConstructor__Group_4__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group_4__0"


    // $ANTLR start "rule__NamedConstructor__Group_4__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3139:1: rule__NamedConstructor__Group_4__0__Impl : ( '(' ) ;
    public final void rule__NamedConstructor__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3143:1: ( ( '(' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3144:1: ( '(' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3144:1: ( '(' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3145:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamedConstructorAccess().getLeftParenthesisKeyword_4_0()); 
            }
            match(input,31,FOLLOW_31_in_rule__NamedConstructor__Group_4__0__Impl6579); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamedConstructorAccess().getLeftParenthesisKeyword_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group_4__0__Impl"


    // $ANTLR start "rule__NamedConstructor__Group_4__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3158:1: rule__NamedConstructor__Group_4__1 : rule__NamedConstructor__Group_4__1__Impl rule__NamedConstructor__Group_4__2 ;
    public final void rule__NamedConstructor__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3162:1: ( rule__NamedConstructor__Group_4__1__Impl rule__NamedConstructor__Group_4__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3163:2: rule__NamedConstructor__Group_4__1__Impl rule__NamedConstructor__Group_4__2
            {
            pushFollow(FOLLOW_rule__NamedConstructor__Group_4__1__Impl_in_rule__NamedConstructor__Group_4__16610);
            rule__NamedConstructor__Group_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__NamedConstructor__Group_4__2_in_rule__NamedConstructor__Group_4__16613);
            rule__NamedConstructor__Group_4__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group_4__1"


    // $ANTLR start "rule__NamedConstructor__Group_4__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3170:1: rule__NamedConstructor__Group_4__1__Impl : ( ( rule__NamedConstructor__Group_4_1__0 )? ) ;
    public final void rule__NamedConstructor__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3174:1: ( ( ( rule__NamedConstructor__Group_4_1__0 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3175:1: ( ( rule__NamedConstructor__Group_4_1__0 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3175:1: ( ( rule__NamedConstructor__Group_4_1__0 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3176:1: ( rule__NamedConstructor__Group_4_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamedConstructorAccess().getGroup_4_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3177:1: ( rule__NamedConstructor__Group_4_1__0 )?
            int alt30=2;
            int LA30_0 = input.LA(1);

            if ( (LA30_0==RULE_ID||(LA30_0>=12 && LA30_0<=23)||LA30_0==27||LA30_0==51||LA30_0==71||(LA30_0>=78 && LA30_0<=79)) ) {
                alt30=1;
            }
            switch (alt30) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3177:2: rule__NamedConstructor__Group_4_1__0
                    {
                    pushFollow(FOLLOW_rule__NamedConstructor__Group_4_1__0_in_rule__NamedConstructor__Group_4__1__Impl6640);
                    rule__NamedConstructor__Group_4_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamedConstructorAccess().getGroup_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group_4__1__Impl"


    // $ANTLR start "rule__NamedConstructor__Group_4__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3187:1: rule__NamedConstructor__Group_4__2 : rule__NamedConstructor__Group_4__2__Impl ;
    public final void rule__NamedConstructor__Group_4__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3191:1: ( rule__NamedConstructor__Group_4__2__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3192:2: rule__NamedConstructor__Group_4__2__Impl
            {
            pushFollow(FOLLOW_rule__NamedConstructor__Group_4__2__Impl_in_rule__NamedConstructor__Group_4__26671);
            rule__NamedConstructor__Group_4__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group_4__2"


    // $ANTLR start "rule__NamedConstructor__Group_4__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3198:1: rule__NamedConstructor__Group_4__2__Impl : ( ')' ) ;
    public final void rule__NamedConstructor__Group_4__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3202:1: ( ( ')' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3203:1: ( ')' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3203:1: ( ')' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3204:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamedConstructorAccess().getRightParenthesisKeyword_4_2()); 
            }
            match(input,32,FOLLOW_32_in_rule__NamedConstructor__Group_4__2__Impl6699); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamedConstructorAccess().getRightParenthesisKeyword_4_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group_4__2__Impl"


    // $ANTLR start "rule__NamedConstructor__Group_4_1__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3223:1: rule__NamedConstructor__Group_4_1__0 : rule__NamedConstructor__Group_4_1__0__Impl rule__NamedConstructor__Group_4_1__1 ;
    public final void rule__NamedConstructor__Group_4_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3227:1: ( rule__NamedConstructor__Group_4_1__0__Impl rule__NamedConstructor__Group_4_1__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3228:2: rule__NamedConstructor__Group_4_1__0__Impl rule__NamedConstructor__Group_4_1__1
            {
            pushFollow(FOLLOW_rule__NamedConstructor__Group_4_1__0__Impl_in_rule__NamedConstructor__Group_4_1__06736);
            rule__NamedConstructor__Group_4_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__NamedConstructor__Group_4_1__1_in_rule__NamedConstructor__Group_4_1__06739);
            rule__NamedConstructor__Group_4_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group_4_1__0"


    // $ANTLR start "rule__NamedConstructor__Group_4_1__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3235:1: rule__NamedConstructor__Group_4_1__0__Impl : ( ( rule__NamedConstructor__ArgumentsAssignment_4_1_0 ) ) ;
    public final void rule__NamedConstructor__Group_4_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3239:1: ( ( ( rule__NamedConstructor__ArgumentsAssignment_4_1_0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3240:1: ( ( rule__NamedConstructor__ArgumentsAssignment_4_1_0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3240:1: ( ( rule__NamedConstructor__ArgumentsAssignment_4_1_0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3241:1: ( rule__NamedConstructor__ArgumentsAssignment_4_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamedConstructorAccess().getArgumentsAssignment_4_1_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3242:1: ( rule__NamedConstructor__ArgumentsAssignment_4_1_0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3242:2: rule__NamedConstructor__ArgumentsAssignment_4_1_0
            {
            pushFollow(FOLLOW_rule__NamedConstructor__ArgumentsAssignment_4_1_0_in_rule__NamedConstructor__Group_4_1__0__Impl6766);
            rule__NamedConstructor__ArgumentsAssignment_4_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamedConstructorAccess().getArgumentsAssignment_4_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group_4_1__0__Impl"


    // $ANTLR start "rule__NamedConstructor__Group_4_1__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3252:1: rule__NamedConstructor__Group_4_1__1 : rule__NamedConstructor__Group_4_1__1__Impl ;
    public final void rule__NamedConstructor__Group_4_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3256:1: ( rule__NamedConstructor__Group_4_1__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3257:2: rule__NamedConstructor__Group_4_1__1__Impl
            {
            pushFollow(FOLLOW_rule__NamedConstructor__Group_4_1__1__Impl_in_rule__NamedConstructor__Group_4_1__16796);
            rule__NamedConstructor__Group_4_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group_4_1__1"


    // $ANTLR start "rule__NamedConstructor__Group_4_1__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3263:1: rule__NamedConstructor__Group_4_1__1__Impl : ( ( rule__NamedConstructor__Group_4_1_1__0 )* ) ;
    public final void rule__NamedConstructor__Group_4_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3267:1: ( ( ( rule__NamedConstructor__Group_4_1_1__0 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3268:1: ( ( rule__NamedConstructor__Group_4_1_1__0 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3268:1: ( ( rule__NamedConstructor__Group_4_1_1__0 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3269:1: ( rule__NamedConstructor__Group_4_1_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamedConstructorAccess().getGroup_4_1_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3270:1: ( rule__NamedConstructor__Group_4_1_1__0 )*
            loop31:
            do {
                int alt31=2;
                int LA31_0 = input.LA(1);

                if ( (LA31_0==33) ) {
                    alt31=1;
                }


                switch (alt31) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3270:2: rule__NamedConstructor__Group_4_1_1__0
            	    {
            	    pushFollow(FOLLOW_rule__NamedConstructor__Group_4_1_1__0_in_rule__NamedConstructor__Group_4_1__1__Impl6823);
            	    rule__NamedConstructor__Group_4_1_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop31;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamedConstructorAccess().getGroup_4_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group_4_1__1__Impl"


    // $ANTLR start "rule__NamedConstructor__Group_4_1_1__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3284:1: rule__NamedConstructor__Group_4_1_1__0 : rule__NamedConstructor__Group_4_1_1__0__Impl rule__NamedConstructor__Group_4_1_1__1 ;
    public final void rule__NamedConstructor__Group_4_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3288:1: ( rule__NamedConstructor__Group_4_1_1__0__Impl rule__NamedConstructor__Group_4_1_1__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3289:2: rule__NamedConstructor__Group_4_1_1__0__Impl rule__NamedConstructor__Group_4_1_1__1
            {
            pushFollow(FOLLOW_rule__NamedConstructor__Group_4_1_1__0__Impl_in_rule__NamedConstructor__Group_4_1_1__06858);
            rule__NamedConstructor__Group_4_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__NamedConstructor__Group_4_1_1__1_in_rule__NamedConstructor__Group_4_1_1__06861);
            rule__NamedConstructor__Group_4_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group_4_1_1__0"


    // $ANTLR start "rule__NamedConstructor__Group_4_1_1__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3296:1: rule__NamedConstructor__Group_4_1_1__0__Impl : ( ',' ) ;
    public final void rule__NamedConstructor__Group_4_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3300:1: ( ( ',' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3301:1: ( ',' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3301:1: ( ',' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3302:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamedConstructorAccess().getCommaKeyword_4_1_1_0()); 
            }
            match(input,33,FOLLOW_33_in_rule__NamedConstructor__Group_4_1_1__0__Impl6889); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamedConstructorAccess().getCommaKeyword_4_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group_4_1_1__0__Impl"


    // $ANTLR start "rule__NamedConstructor__Group_4_1_1__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3315:1: rule__NamedConstructor__Group_4_1_1__1 : rule__NamedConstructor__Group_4_1_1__1__Impl ;
    public final void rule__NamedConstructor__Group_4_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3319:1: ( rule__NamedConstructor__Group_4_1_1__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3320:2: rule__NamedConstructor__Group_4_1_1__1__Impl
            {
            pushFollow(FOLLOW_rule__NamedConstructor__Group_4_1_1__1__Impl_in_rule__NamedConstructor__Group_4_1_1__16920);
            rule__NamedConstructor__Group_4_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group_4_1_1__1"


    // $ANTLR start "rule__NamedConstructor__Group_4_1_1__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3326:1: rule__NamedConstructor__Group_4_1_1__1__Impl : ( ( rule__NamedConstructor__ArgumentsAssignment_4_1_1_1 ) ) ;
    public final void rule__NamedConstructor__Group_4_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3330:1: ( ( ( rule__NamedConstructor__ArgumentsAssignment_4_1_1_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3331:1: ( ( rule__NamedConstructor__ArgumentsAssignment_4_1_1_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3331:1: ( ( rule__NamedConstructor__ArgumentsAssignment_4_1_1_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3332:1: ( rule__NamedConstructor__ArgumentsAssignment_4_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamedConstructorAccess().getArgumentsAssignment_4_1_1_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3333:1: ( rule__NamedConstructor__ArgumentsAssignment_4_1_1_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3333:2: rule__NamedConstructor__ArgumentsAssignment_4_1_1_1
            {
            pushFollow(FOLLOW_rule__NamedConstructor__ArgumentsAssignment_4_1_1_1_in_rule__NamedConstructor__Group_4_1_1__1__Impl6947);
            rule__NamedConstructor__ArgumentsAssignment_4_1_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamedConstructorAccess().getArgumentsAssignment_4_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__Group_4_1_1__1__Impl"


    // $ANTLR start "rule__Callback__Group_0__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3347:1: rule__Callback__Group_0__0 : rule__Callback__Group_0__0__Impl rule__Callback__Group_0__1 ;
    public final void rule__Callback__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3351:1: ( rule__Callback__Group_0__0__Impl rule__Callback__Group_0__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3352:2: rule__Callback__Group_0__0__Impl rule__Callback__Group_0__1
            {
            pushFollow(FOLLOW_rule__Callback__Group_0__0__Impl_in_rule__Callback__Group_0__06981);
            rule__Callback__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Callback__Group_0__1_in_rule__Callback__Group_0__06984);
            rule__Callback__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Callback__Group_0__0"


    // $ANTLR start "rule__Callback__Group_0__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3359:1: rule__Callback__Group_0__0__Impl : ( 'Callback' ) ;
    public final void rule__Callback__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3363:1: ( ( 'Callback' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3364:1: ( 'Callback' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3364:1: ( 'Callback' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3365:1: 'Callback'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCallbackAccess().getCallbackKeyword_0_0()); 
            }
            match(input,36,FOLLOW_36_in_rule__Callback__Group_0__0__Impl7012); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCallbackAccess().getCallbackKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Callback__Group_0__0__Impl"


    // $ANTLR start "rule__Callback__Group_0__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3378:1: rule__Callback__Group_0__1 : rule__Callback__Group_0__1__Impl ;
    public final void rule__Callback__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3382:1: ( rule__Callback__Group_0__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3383:2: rule__Callback__Group_0__1__Impl
            {
            pushFollow(FOLLOW_rule__Callback__Group_0__1__Impl_in_rule__Callback__Group_0__17043);
            rule__Callback__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Callback__Group_0__1"


    // $ANTLR start "rule__Callback__Group_0__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3389:1: rule__Callback__Group_0__1__Impl : ( () ) ;
    public final void rule__Callback__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3393:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3394:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3394:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3395:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCallbackAccess().getCallbackAction_0_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3396:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3398:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCallbackAccess().getCallbackAction_0_1()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Callback__Group_0__1__Impl"


    // $ANTLR start "rule__Callback__Group_1__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3412:1: rule__Callback__Group_1__0 : rule__Callback__Group_1__0__Impl rule__Callback__Group_1__1 ;
    public final void rule__Callback__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3416:1: ( rule__Callback__Group_1__0__Impl rule__Callback__Group_1__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3417:2: rule__Callback__Group_1__0__Impl rule__Callback__Group_1__1
            {
            pushFollow(FOLLOW_rule__Callback__Group_1__0__Impl_in_rule__Callback__Group_1__07105);
            rule__Callback__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Callback__Group_1__1_in_rule__Callback__Group_1__07108);
            rule__Callback__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Callback__Group_1__0"


    // $ANTLR start "rule__Callback__Group_1__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3424:1: rule__Callback__Group_1__0__Impl : ( 'Callback' ) ;
    public final void rule__Callback__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3428:1: ( ( 'Callback' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3429:1: ( 'Callback' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3429:1: ( 'Callback' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3430:1: 'Callback'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCallbackAccess().getCallbackKeyword_1_0()); 
            }
            match(input,36,FOLLOW_36_in_rule__Callback__Group_1__0__Impl7136); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCallbackAccess().getCallbackKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Callback__Group_1__0__Impl"


    // $ANTLR start "rule__Callback__Group_1__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3443:1: rule__Callback__Group_1__1 : rule__Callback__Group_1__1__Impl rule__Callback__Group_1__2 ;
    public final void rule__Callback__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3447:1: ( rule__Callback__Group_1__1__Impl rule__Callback__Group_1__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3448:2: rule__Callback__Group_1__1__Impl rule__Callback__Group_1__2
            {
            pushFollow(FOLLOW_rule__Callback__Group_1__1__Impl_in_rule__Callback__Group_1__17167);
            rule__Callback__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Callback__Group_1__2_in_rule__Callback__Group_1__17170);
            rule__Callback__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Callback__Group_1__1"


    // $ANTLR start "rule__Callback__Group_1__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3455:1: rule__Callback__Group_1__1__Impl : ( '=' ) ;
    public final void rule__Callback__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3459:1: ( ( '=' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3460:1: ( '=' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3460:1: ( '=' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3461:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCallbackAccess().getEqualsSignKeyword_1_1()); 
            }
            match(input,35,FOLLOW_35_in_rule__Callback__Group_1__1__Impl7198); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCallbackAccess().getEqualsSignKeyword_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Callback__Group_1__1__Impl"


    // $ANTLR start "rule__Callback__Group_1__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3474:1: rule__Callback__Group_1__2 : rule__Callback__Group_1__2__Impl ;
    public final void rule__Callback__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3478:1: ( rule__Callback__Group_1__2__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3479:2: rule__Callback__Group_1__2__Impl
            {
            pushFollow(FOLLOW_rule__Callback__Group_1__2__Impl_in_rule__Callback__Group_1__27229);
            rule__Callback__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Callback__Group_1__2"


    // $ANTLR start "rule__Callback__Group_1__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3485:1: rule__Callback__Group_1__2__Impl : ( ( rule__Callback__FunctionOnlyAssignment_1_2 ) ) ;
    public final void rule__Callback__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3489:1: ( ( ( rule__Callback__FunctionOnlyAssignment_1_2 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3490:1: ( ( rule__Callback__FunctionOnlyAssignment_1_2 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3490:1: ( ( rule__Callback__FunctionOnlyAssignment_1_2 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3491:1: ( rule__Callback__FunctionOnlyAssignment_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCallbackAccess().getFunctionOnlyAssignment_1_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3492:1: ( rule__Callback__FunctionOnlyAssignment_1_2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3492:2: rule__Callback__FunctionOnlyAssignment_1_2
            {
            pushFollow(FOLLOW_rule__Callback__FunctionOnlyAssignment_1_2_in_rule__Callback__Group_1__2__Impl7256);
            rule__Callback__FunctionOnlyAssignment_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCallbackAccess().getFunctionOnlyAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Callback__Group_1__2__Impl"


    // $ANTLR start "rule__Callback__Group_2__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3508:1: rule__Callback__Group_2__0 : rule__Callback__Group_2__0__Impl rule__Callback__Group_2__1 ;
    public final void rule__Callback__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3512:1: ( rule__Callback__Group_2__0__Impl rule__Callback__Group_2__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3513:2: rule__Callback__Group_2__0__Impl rule__Callback__Group_2__1
            {
            pushFollow(FOLLOW_rule__Callback__Group_2__0__Impl_in_rule__Callback__Group_2__07292);
            rule__Callback__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Callback__Group_2__1_in_rule__Callback__Group_2__07295);
            rule__Callback__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Callback__Group_2__0"


    // $ANTLR start "rule__Callback__Group_2__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3520:1: rule__Callback__Group_2__0__Impl : ( 'Callback' ) ;
    public final void rule__Callback__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3524:1: ( ( 'Callback' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3525:1: ( 'Callback' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3525:1: ( 'Callback' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3526:1: 'Callback'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCallbackAccess().getCallbackKeyword_2_0()); 
            }
            match(input,36,FOLLOW_36_in_rule__Callback__Group_2__0__Impl7323); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCallbackAccess().getCallbackKeyword_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Callback__Group_2__0__Impl"


    // $ANTLR start "rule__Callback__Group_2__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3539:1: rule__Callback__Group_2__1 : rule__Callback__Group_2__1__Impl rule__Callback__Group_2__2 ;
    public final void rule__Callback__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3543:1: ( rule__Callback__Group_2__1__Impl rule__Callback__Group_2__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3544:2: rule__Callback__Group_2__1__Impl rule__Callback__Group_2__2
            {
            pushFollow(FOLLOW_rule__Callback__Group_2__1__Impl_in_rule__Callback__Group_2__17354);
            rule__Callback__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Callback__Group_2__2_in_rule__Callback__Group_2__17357);
            rule__Callback__Group_2__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Callback__Group_2__1"


    // $ANTLR start "rule__Callback__Group_2__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3551:1: rule__Callback__Group_2__1__Impl : ( '=' ) ;
    public final void rule__Callback__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3555:1: ( ( '=' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3556:1: ( '=' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3556:1: ( '=' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3557:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCallbackAccess().getEqualsSignKeyword_2_1()); 
            }
            match(input,35,FOLLOW_35_in_rule__Callback__Group_2__1__Impl7385); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCallbackAccess().getEqualsSignKeyword_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Callback__Group_2__1__Impl"


    // $ANTLR start "rule__Callback__Group_2__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3570:1: rule__Callback__Group_2__2 : rule__Callback__Group_2__2__Impl ;
    public final void rule__Callback__Group_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3574:1: ( rule__Callback__Group_2__2__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3575:2: rule__Callback__Group_2__2__Impl
            {
            pushFollow(FOLLOW_rule__Callback__Group_2__2__Impl_in_rule__Callback__Group_2__27416);
            rule__Callback__Group_2__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Callback__Group_2__2"


    // $ANTLR start "rule__Callback__Group_2__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3581:1: rule__Callback__Group_2__2__Impl : ( ( rule__Callback__PropertyOnlyAssignment_2_2 ) ) ;
    public final void rule__Callback__Group_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3585:1: ( ( ( rule__Callback__PropertyOnlyAssignment_2_2 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3586:1: ( ( rule__Callback__PropertyOnlyAssignment_2_2 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3586:1: ( ( rule__Callback__PropertyOnlyAssignment_2_2 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3587:1: ( rule__Callback__PropertyOnlyAssignment_2_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCallbackAccess().getPropertyOnlyAssignment_2_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3588:1: ( rule__Callback__PropertyOnlyAssignment_2_2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3588:2: rule__Callback__PropertyOnlyAssignment_2_2
            {
            pushFollow(FOLLOW_rule__Callback__PropertyOnlyAssignment_2_2_in_rule__Callback__Group_2__2__Impl7443);
            rule__Callback__PropertyOnlyAssignment_2_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCallbackAccess().getPropertyOnlyAssignment_2_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Callback__Group_2__2__Impl"


    // $ANTLR start "rule__NoInterfaceObject__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3604:1: rule__NoInterfaceObject__Group__0 : rule__NoInterfaceObject__Group__0__Impl rule__NoInterfaceObject__Group__1 ;
    public final void rule__NoInterfaceObject__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3608:1: ( rule__NoInterfaceObject__Group__0__Impl rule__NoInterfaceObject__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3609:2: rule__NoInterfaceObject__Group__0__Impl rule__NoInterfaceObject__Group__1
            {
            pushFollow(FOLLOW_rule__NoInterfaceObject__Group__0__Impl_in_rule__NoInterfaceObject__Group__07479);
            rule__NoInterfaceObject__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__NoInterfaceObject__Group__1_in_rule__NoInterfaceObject__Group__07482);
            rule__NoInterfaceObject__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NoInterfaceObject__Group__0"


    // $ANTLR start "rule__NoInterfaceObject__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3616:1: rule__NoInterfaceObject__Group__0__Impl : ( () ) ;
    public final void rule__NoInterfaceObject__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3620:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3621:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3621:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3622:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNoInterfaceObjectAccess().getNoInterfaceObjectAction_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3623:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3625:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNoInterfaceObjectAccess().getNoInterfaceObjectAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NoInterfaceObject__Group__0__Impl"


    // $ANTLR start "rule__NoInterfaceObject__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3635:1: rule__NoInterfaceObject__Group__1 : rule__NoInterfaceObject__Group__1__Impl ;
    public final void rule__NoInterfaceObject__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3639:1: ( rule__NoInterfaceObject__Group__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3640:2: rule__NoInterfaceObject__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__NoInterfaceObject__Group__1__Impl_in_rule__NoInterfaceObject__Group__17540);
            rule__NoInterfaceObject__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NoInterfaceObject__Group__1"


    // $ANTLR start "rule__NoInterfaceObject__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3646:1: rule__NoInterfaceObject__Group__1__Impl : ( 'NoInterfaceObject' ) ;
    public final void rule__NoInterfaceObject__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3650:1: ( ( 'NoInterfaceObject' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3651:1: ( 'NoInterfaceObject' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3651:1: ( 'NoInterfaceObject' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3652:1: 'NoInterfaceObject'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNoInterfaceObjectAccess().getNoInterfaceObjectKeyword_1()); 
            }
            match(input,37,FOLLOW_37_in_rule__NoInterfaceObject__Group__1__Impl7568); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNoInterfaceObjectAccess().getNoInterfaceObjectKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NoInterfaceObject__Group__1__Impl"


    // $ANTLR start "rule__PrototypeRoot__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3669:1: rule__PrototypeRoot__Group__0 : rule__PrototypeRoot__Group__0__Impl rule__PrototypeRoot__Group__1 ;
    public final void rule__PrototypeRoot__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3673:1: ( rule__PrototypeRoot__Group__0__Impl rule__PrototypeRoot__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3674:2: rule__PrototypeRoot__Group__0__Impl rule__PrototypeRoot__Group__1
            {
            pushFollow(FOLLOW_rule__PrototypeRoot__Group__0__Impl_in_rule__PrototypeRoot__Group__07603);
            rule__PrototypeRoot__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__PrototypeRoot__Group__1_in_rule__PrototypeRoot__Group__07606);
            rule__PrototypeRoot__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PrototypeRoot__Group__0"


    // $ANTLR start "rule__PrototypeRoot__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3681:1: rule__PrototypeRoot__Group__0__Impl : ( () ) ;
    public final void rule__PrototypeRoot__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3685:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3686:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3686:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3687:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrototypeRootAccess().getPrototypeRootAction_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3688:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3690:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrototypeRootAccess().getPrototypeRootAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PrototypeRoot__Group__0__Impl"


    // $ANTLR start "rule__PrototypeRoot__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3700:1: rule__PrototypeRoot__Group__1 : rule__PrototypeRoot__Group__1__Impl ;
    public final void rule__PrototypeRoot__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3704:1: ( rule__PrototypeRoot__Group__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3705:2: rule__PrototypeRoot__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__PrototypeRoot__Group__1__Impl_in_rule__PrototypeRoot__Group__17664);
            rule__PrototypeRoot__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PrototypeRoot__Group__1"


    // $ANTLR start "rule__PrototypeRoot__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3711:1: rule__PrototypeRoot__Group__1__Impl : ( 'PrototypeRoot' ) ;
    public final void rule__PrototypeRoot__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3715:1: ( ( 'PrototypeRoot' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3716:1: ( 'PrototypeRoot' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3716:1: ( 'PrototypeRoot' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3717:1: 'PrototypeRoot'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrototypeRootAccess().getPrototypeRootKeyword_1()); 
            }
            match(input,38,FOLLOW_38_in_rule__PrototypeRoot__Group__1__Impl7692); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrototypeRootAccess().getPrototypeRootKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PrototypeRoot__Group__1__Impl"


    // $ANTLR start "rule__PutForwards__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3734:1: rule__PutForwards__Group__0 : rule__PutForwards__Group__0__Impl rule__PutForwards__Group__1 ;
    public final void rule__PutForwards__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3738:1: ( rule__PutForwards__Group__0__Impl rule__PutForwards__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3739:2: rule__PutForwards__Group__0__Impl rule__PutForwards__Group__1
            {
            pushFollow(FOLLOW_rule__PutForwards__Group__0__Impl_in_rule__PutForwards__Group__07727);
            rule__PutForwards__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__PutForwards__Group__1_in_rule__PutForwards__Group__07730);
            rule__PutForwards__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PutForwards__Group__0"


    // $ANTLR start "rule__PutForwards__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3746:1: rule__PutForwards__Group__0__Impl : ( 'PutForwards' ) ;
    public final void rule__PutForwards__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3750:1: ( ( 'PutForwards' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3751:1: ( 'PutForwards' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3751:1: ( 'PutForwards' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3752:1: 'PutForwards'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPutForwardsAccess().getPutForwardsKeyword_0()); 
            }
            match(input,39,FOLLOW_39_in_rule__PutForwards__Group__0__Impl7758); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPutForwardsAccess().getPutForwardsKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PutForwards__Group__0__Impl"


    // $ANTLR start "rule__PutForwards__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3765:1: rule__PutForwards__Group__1 : rule__PutForwards__Group__1__Impl rule__PutForwards__Group__2 ;
    public final void rule__PutForwards__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3769:1: ( rule__PutForwards__Group__1__Impl rule__PutForwards__Group__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3770:2: rule__PutForwards__Group__1__Impl rule__PutForwards__Group__2
            {
            pushFollow(FOLLOW_rule__PutForwards__Group__1__Impl_in_rule__PutForwards__Group__17789);
            rule__PutForwards__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__PutForwards__Group__2_in_rule__PutForwards__Group__17792);
            rule__PutForwards__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PutForwards__Group__1"


    // $ANTLR start "rule__PutForwards__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3777:1: rule__PutForwards__Group__1__Impl : ( '=' ) ;
    public final void rule__PutForwards__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3781:1: ( ( '=' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3782:1: ( '=' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3782:1: ( '=' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3783:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPutForwardsAccess().getEqualsSignKeyword_1()); 
            }
            match(input,35,FOLLOW_35_in_rule__PutForwards__Group__1__Impl7820); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPutForwardsAccess().getEqualsSignKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PutForwards__Group__1__Impl"


    // $ANTLR start "rule__PutForwards__Group__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3796:1: rule__PutForwards__Group__2 : rule__PutForwards__Group__2__Impl ;
    public final void rule__PutForwards__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3800:1: ( rule__PutForwards__Group__2__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3801:2: rule__PutForwards__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__PutForwards__Group__2__Impl_in_rule__PutForwards__Group__27851);
            rule__PutForwards__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PutForwards__Group__2"


    // $ANTLR start "rule__PutForwards__Group__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3807:1: rule__PutForwards__Group__2__Impl : ( ( rule__PutForwards__TargetAssignment_2 ) ) ;
    public final void rule__PutForwards__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3811:1: ( ( ( rule__PutForwards__TargetAssignment_2 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3812:1: ( ( rule__PutForwards__TargetAssignment_2 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3812:1: ( ( rule__PutForwards__TargetAssignment_2 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3813:1: ( rule__PutForwards__TargetAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPutForwardsAccess().getTargetAssignment_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3814:1: ( rule__PutForwards__TargetAssignment_2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3814:2: rule__PutForwards__TargetAssignment_2
            {
            pushFollow(FOLLOW_rule__PutForwards__TargetAssignment_2_in_rule__PutForwards__Group__2__Impl7878);
            rule__PutForwards__TargetAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPutForwardsAccess().getTargetAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PutForwards__Group__2__Impl"


    // $ANTLR start "rule__TreatNullAs__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3830:1: rule__TreatNullAs__Group__0 : rule__TreatNullAs__Group__0__Impl rule__TreatNullAs__Group__1 ;
    public final void rule__TreatNullAs__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3834:1: ( rule__TreatNullAs__Group__0__Impl rule__TreatNullAs__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3835:2: rule__TreatNullAs__Group__0__Impl rule__TreatNullAs__Group__1
            {
            pushFollow(FOLLOW_rule__TreatNullAs__Group__0__Impl_in_rule__TreatNullAs__Group__07914);
            rule__TreatNullAs__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TreatNullAs__Group__1_in_rule__TreatNullAs__Group__07917);
            rule__TreatNullAs__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatNullAs__Group__0"


    // $ANTLR start "rule__TreatNullAs__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3842:1: rule__TreatNullAs__Group__0__Impl : ( () ) ;
    public final void rule__TreatNullAs__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3846:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3847:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3847:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3848:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatNullAsAccess().getTreatNullAsAction_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3849:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3851:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatNullAsAccess().getTreatNullAsAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatNullAs__Group__0__Impl"


    // $ANTLR start "rule__TreatNullAs__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3861:1: rule__TreatNullAs__Group__1 : rule__TreatNullAs__Group__1__Impl rule__TreatNullAs__Group__2 ;
    public final void rule__TreatNullAs__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3865:1: ( rule__TreatNullAs__Group__1__Impl rule__TreatNullAs__Group__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3866:2: rule__TreatNullAs__Group__1__Impl rule__TreatNullAs__Group__2
            {
            pushFollow(FOLLOW_rule__TreatNullAs__Group__1__Impl_in_rule__TreatNullAs__Group__17975);
            rule__TreatNullAs__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TreatNullAs__Group__2_in_rule__TreatNullAs__Group__17978);
            rule__TreatNullAs__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatNullAs__Group__1"


    // $ANTLR start "rule__TreatNullAs__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3873:1: rule__TreatNullAs__Group__1__Impl : ( 'TreatNullAs' ) ;
    public final void rule__TreatNullAs__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3877:1: ( ( 'TreatNullAs' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3878:1: ( 'TreatNullAs' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3878:1: ( 'TreatNullAs' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3879:1: 'TreatNullAs'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatNullAsAccess().getTreatNullAsKeyword_1()); 
            }
            match(input,40,FOLLOW_40_in_rule__TreatNullAs__Group__1__Impl8006); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatNullAsAccess().getTreatNullAsKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatNullAs__Group__1__Impl"


    // $ANTLR start "rule__TreatNullAs__Group__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3892:1: rule__TreatNullAs__Group__2 : rule__TreatNullAs__Group__2__Impl rule__TreatNullAs__Group__3 ;
    public final void rule__TreatNullAs__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3896:1: ( rule__TreatNullAs__Group__2__Impl rule__TreatNullAs__Group__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3897:2: rule__TreatNullAs__Group__2__Impl rule__TreatNullAs__Group__3
            {
            pushFollow(FOLLOW_rule__TreatNullAs__Group__2__Impl_in_rule__TreatNullAs__Group__28037);
            rule__TreatNullAs__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TreatNullAs__Group__3_in_rule__TreatNullAs__Group__28040);
            rule__TreatNullAs__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatNullAs__Group__2"


    // $ANTLR start "rule__TreatNullAs__Group__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3904:1: rule__TreatNullAs__Group__2__Impl : ( '=' ) ;
    public final void rule__TreatNullAs__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3908:1: ( ( '=' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3909:1: ( '=' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3909:1: ( '=' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3910:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatNullAsAccess().getEqualsSignKeyword_2()); 
            }
            match(input,35,FOLLOW_35_in_rule__TreatNullAs__Group__2__Impl8068); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatNullAsAccess().getEqualsSignKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatNullAs__Group__2__Impl"


    // $ANTLR start "rule__TreatNullAs__Group__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3923:1: rule__TreatNullAs__Group__3 : rule__TreatNullAs__Group__3__Impl ;
    public final void rule__TreatNullAs__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3927:1: ( rule__TreatNullAs__Group__3__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3928:2: rule__TreatNullAs__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__TreatNullAs__Group__3__Impl_in_rule__TreatNullAs__Group__38099);
            rule__TreatNullAs__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatNullAs__Group__3"


    // $ANTLR start "rule__TreatNullAs__Group__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3934:1: rule__TreatNullAs__Group__3__Impl : ( 'EmptyString' ) ;
    public final void rule__TreatNullAs__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3938:1: ( ( 'EmptyString' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3939:1: ( 'EmptyString' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3939:1: ( 'EmptyString' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3940:1: 'EmptyString'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatNullAsAccess().getEmptyStringKeyword_3()); 
            }
            match(input,41,FOLLOW_41_in_rule__TreatNullAs__Group__3__Impl8127); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatNullAsAccess().getEmptyStringKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatNullAs__Group__3__Impl"


    // $ANTLR start "rule__TreatUndefinedAs__Group_0__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3961:1: rule__TreatUndefinedAs__Group_0__0 : rule__TreatUndefinedAs__Group_0__0__Impl rule__TreatUndefinedAs__Group_0__1 ;
    public final void rule__TreatUndefinedAs__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3965:1: ( rule__TreatUndefinedAs__Group_0__0__Impl rule__TreatUndefinedAs__Group_0__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3966:2: rule__TreatUndefinedAs__Group_0__0__Impl rule__TreatUndefinedAs__Group_0__1
            {
            pushFollow(FOLLOW_rule__TreatUndefinedAs__Group_0__0__Impl_in_rule__TreatUndefinedAs__Group_0__08166);
            rule__TreatUndefinedAs__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TreatUndefinedAs__Group_0__1_in_rule__TreatUndefinedAs__Group_0__08169);
            rule__TreatUndefinedAs__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatUndefinedAs__Group_0__0"


    // $ANTLR start "rule__TreatUndefinedAs__Group_0__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3973:1: rule__TreatUndefinedAs__Group_0__0__Impl : ( () ) ;
    public final void rule__TreatUndefinedAs__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3977:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3978:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3978:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3979:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatUndefinedAsAccess().getTreatUndefinedAsAction_0_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3980:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3982:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatUndefinedAsAccess().getTreatUndefinedAsAction_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatUndefinedAs__Group_0__0__Impl"


    // $ANTLR start "rule__TreatUndefinedAs__Group_0__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3992:1: rule__TreatUndefinedAs__Group_0__1 : rule__TreatUndefinedAs__Group_0__1__Impl rule__TreatUndefinedAs__Group_0__2 ;
    public final void rule__TreatUndefinedAs__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3996:1: ( rule__TreatUndefinedAs__Group_0__1__Impl rule__TreatUndefinedAs__Group_0__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:3997:2: rule__TreatUndefinedAs__Group_0__1__Impl rule__TreatUndefinedAs__Group_0__2
            {
            pushFollow(FOLLOW_rule__TreatUndefinedAs__Group_0__1__Impl_in_rule__TreatUndefinedAs__Group_0__18227);
            rule__TreatUndefinedAs__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TreatUndefinedAs__Group_0__2_in_rule__TreatUndefinedAs__Group_0__18230);
            rule__TreatUndefinedAs__Group_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatUndefinedAs__Group_0__1"


    // $ANTLR start "rule__TreatUndefinedAs__Group_0__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4004:1: rule__TreatUndefinedAs__Group_0__1__Impl : ( 'TreatUndefinedAs' ) ;
    public final void rule__TreatUndefinedAs__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4008:1: ( ( 'TreatUndefinedAs' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4009:1: ( 'TreatUndefinedAs' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4009:1: ( 'TreatUndefinedAs' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4010:1: 'TreatUndefinedAs'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatUndefinedAsAccess().getTreatUndefinedAsKeyword_0_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__TreatUndefinedAs__Group_0__1__Impl8258); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatUndefinedAsAccess().getTreatUndefinedAsKeyword_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatUndefinedAs__Group_0__1__Impl"


    // $ANTLR start "rule__TreatUndefinedAs__Group_0__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4023:1: rule__TreatUndefinedAs__Group_0__2 : rule__TreatUndefinedAs__Group_0__2__Impl rule__TreatUndefinedAs__Group_0__3 ;
    public final void rule__TreatUndefinedAs__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4027:1: ( rule__TreatUndefinedAs__Group_0__2__Impl rule__TreatUndefinedAs__Group_0__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4028:2: rule__TreatUndefinedAs__Group_0__2__Impl rule__TreatUndefinedAs__Group_0__3
            {
            pushFollow(FOLLOW_rule__TreatUndefinedAs__Group_0__2__Impl_in_rule__TreatUndefinedAs__Group_0__28289);
            rule__TreatUndefinedAs__Group_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TreatUndefinedAs__Group_0__3_in_rule__TreatUndefinedAs__Group_0__28292);
            rule__TreatUndefinedAs__Group_0__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatUndefinedAs__Group_0__2"


    // $ANTLR start "rule__TreatUndefinedAs__Group_0__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4035:1: rule__TreatUndefinedAs__Group_0__2__Impl : ( '=' ) ;
    public final void rule__TreatUndefinedAs__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4039:1: ( ( '=' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4040:1: ( '=' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4040:1: ( '=' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4041:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatUndefinedAsAccess().getEqualsSignKeyword_0_2()); 
            }
            match(input,35,FOLLOW_35_in_rule__TreatUndefinedAs__Group_0__2__Impl8320); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatUndefinedAsAccess().getEqualsSignKeyword_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatUndefinedAs__Group_0__2__Impl"


    // $ANTLR start "rule__TreatUndefinedAs__Group_0__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4054:1: rule__TreatUndefinedAs__Group_0__3 : rule__TreatUndefinedAs__Group_0__3__Impl ;
    public final void rule__TreatUndefinedAs__Group_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4058:1: ( rule__TreatUndefinedAs__Group_0__3__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4059:2: rule__TreatUndefinedAs__Group_0__3__Impl
            {
            pushFollow(FOLLOW_rule__TreatUndefinedAs__Group_0__3__Impl_in_rule__TreatUndefinedAs__Group_0__38351);
            rule__TreatUndefinedAs__Group_0__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatUndefinedAs__Group_0__3"


    // $ANTLR start "rule__TreatUndefinedAs__Group_0__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4065:1: rule__TreatUndefinedAs__Group_0__3__Impl : ( ( rule__TreatUndefinedAs__AsEmptyStringAssignment_0_3 ) ) ;
    public final void rule__TreatUndefinedAs__Group_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4069:1: ( ( ( rule__TreatUndefinedAs__AsEmptyStringAssignment_0_3 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4070:1: ( ( rule__TreatUndefinedAs__AsEmptyStringAssignment_0_3 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4070:1: ( ( rule__TreatUndefinedAs__AsEmptyStringAssignment_0_3 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4071:1: ( rule__TreatUndefinedAs__AsEmptyStringAssignment_0_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatUndefinedAsAccess().getAsEmptyStringAssignment_0_3()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4072:1: ( rule__TreatUndefinedAs__AsEmptyStringAssignment_0_3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4072:2: rule__TreatUndefinedAs__AsEmptyStringAssignment_0_3
            {
            pushFollow(FOLLOW_rule__TreatUndefinedAs__AsEmptyStringAssignment_0_3_in_rule__TreatUndefinedAs__Group_0__3__Impl8378);
            rule__TreatUndefinedAs__AsEmptyStringAssignment_0_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatUndefinedAsAccess().getAsEmptyStringAssignment_0_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatUndefinedAs__Group_0__3__Impl"


    // $ANTLR start "rule__TreatUndefinedAs__Group_1__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4090:1: rule__TreatUndefinedAs__Group_1__0 : rule__TreatUndefinedAs__Group_1__0__Impl rule__TreatUndefinedAs__Group_1__1 ;
    public final void rule__TreatUndefinedAs__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4094:1: ( rule__TreatUndefinedAs__Group_1__0__Impl rule__TreatUndefinedAs__Group_1__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4095:2: rule__TreatUndefinedAs__Group_1__0__Impl rule__TreatUndefinedAs__Group_1__1
            {
            pushFollow(FOLLOW_rule__TreatUndefinedAs__Group_1__0__Impl_in_rule__TreatUndefinedAs__Group_1__08416);
            rule__TreatUndefinedAs__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TreatUndefinedAs__Group_1__1_in_rule__TreatUndefinedAs__Group_1__08419);
            rule__TreatUndefinedAs__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatUndefinedAs__Group_1__0"


    // $ANTLR start "rule__TreatUndefinedAs__Group_1__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4102:1: rule__TreatUndefinedAs__Group_1__0__Impl : ( () ) ;
    public final void rule__TreatUndefinedAs__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4106:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4107:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4107:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4108:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatUndefinedAsAccess().getTreatUndefinedAsAction_1_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4109:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4111:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatUndefinedAsAccess().getTreatUndefinedAsAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatUndefinedAs__Group_1__0__Impl"


    // $ANTLR start "rule__TreatUndefinedAs__Group_1__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4121:1: rule__TreatUndefinedAs__Group_1__1 : rule__TreatUndefinedAs__Group_1__1__Impl rule__TreatUndefinedAs__Group_1__2 ;
    public final void rule__TreatUndefinedAs__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4125:1: ( rule__TreatUndefinedAs__Group_1__1__Impl rule__TreatUndefinedAs__Group_1__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4126:2: rule__TreatUndefinedAs__Group_1__1__Impl rule__TreatUndefinedAs__Group_1__2
            {
            pushFollow(FOLLOW_rule__TreatUndefinedAs__Group_1__1__Impl_in_rule__TreatUndefinedAs__Group_1__18477);
            rule__TreatUndefinedAs__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TreatUndefinedAs__Group_1__2_in_rule__TreatUndefinedAs__Group_1__18480);
            rule__TreatUndefinedAs__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatUndefinedAs__Group_1__1"


    // $ANTLR start "rule__TreatUndefinedAs__Group_1__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4133:1: rule__TreatUndefinedAs__Group_1__1__Impl : ( 'TreatUndefinedAs' ) ;
    public final void rule__TreatUndefinedAs__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4137:1: ( ( 'TreatUndefinedAs' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4138:1: ( 'TreatUndefinedAs' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4138:1: ( 'TreatUndefinedAs' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4139:1: 'TreatUndefinedAs'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatUndefinedAsAccess().getTreatUndefinedAsKeyword_1_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__TreatUndefinedAs__Group_1__1__Impl8508); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatUndefinedAsAccess().getTreatUndefinedAsKeyword_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatUndefinedAs__Group_1__1__Impl"


    // $ANTLR start "rule__TreatUndefinedAs__Group_1__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4152:1: rule__TreatUndefinedAs__Group_1__2 : rule__TreatUndefinedAs__Group_1__2__Impl rule__TreatUndefinedAs__Group_1__3 ;
    public final void rule__TreatUndefinedAs__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4156:1: ( rule__TreatUndefinedAs__Group_1__2__Impl rule__TreatUndefinedAs__Group_1__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4157:2: rule__TreatUndefinedAs__Group_1__2__Impl rule__TreatUndefinedAs__Group_1__3
            {
            pushFollow(FOLLOW_rule__TreatUndefinedAs__Group_1__2__Impl_in_rule__TreatUndefinedAs__Group_1__28539);
            rule__TreatUndefinedAs__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TreatUndefinedAs__Group_1__3_in_rule__TreatUndefinedAs__Group_1__28542);
            rule__TreatUndefinedAs__Group_1__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatUndefinedAs__Group_1__2"


    // $ANTLR start "rule__TreatUndefinedAs__Group_1__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4164:1: rule__TreatUndefinedAs__Group_1__2__Impl : ( '=' ) ;
    public final void rule__TreatUndefinedAs__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4168:1: ( ( '=' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4169:1: ( '=' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4169:1: ( '=' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4170:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatUndefinedAsAccess().getEqualsSignKeyword_1_2()); 
            }
            match(input,35,FOLLOW_35_in_rule__TreatUndefinedAs__Group_1__2__Impl8570); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatUndefinedAsAccess().getEqualsSignKeyword_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatUndefinedAs__Group_1__2__Impl"


    // $ANTLR start "rule__TreatUndefinedAs__Group_1__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4183:1: rule__TreatUndefinedAs__Group_1__3 : rule__TreatUndefinedAs__Group_1__3__Impl ;
    public final void rule__TreatUndefinedAs__Group_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4187:1: ( rule__TreatUndefinedAs__Group_1__3__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4188:2: rule__TreatUndefinedAs__Group_1__3__Impl
            {
            pushFollow(FOLLOW_rule__TreatUndefinedAs__Group_1__3__Impl_in_rule__TreatUndefinedAs__Group_1__38601);
            rule__TreatUndefinedAs__Group_1__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatUndefinedAs__Group_1__3"


    // $ANTLR start "rule__TreatUndefinedAs__Group_1__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4194:1: rule__TreatUndefinedAs__Group_1__3__Impl : ( ( rule__TreatUndefinedAs__AsNullAssignment_1_3 ) ) ;
    public final void rule__TreatUndefinedAs__Group_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4198:1: ( ( ( rule__TreatUndefinedAs__AsNullAssignment_1_3 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4199:1: ( ( rule__TreatUndefinedAs__AsNullAssignment_1_3 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4199:1: ( ( rule__TreatUndefinedAs__AsNullAssignment_1_3 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4200:1: ( rule__TreatUndefinedAs__AsNullAssignment_1_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatUndefinedAsAccess().getAsNullAssignment_1_3()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4201:1: ( rule__TreatUndefinedAs__AsNullAssignment_1_3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4201:2: rule__TreatUndefinedAs__AsNullAssignment_1_3
            {
            pushFollow(FOLLOW_rule__TreatUndefinedAs__AsNullAssignment_1_3_in_rule__TreatUndefinedAs__Group_1__3__Impl8628);
            rule__TreatUndefinedAs__AsNullAssignment_1_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatUndefinedAsAccess().getAsNullAssignment_1_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatUndefinedAs__Group_1__3__Impl"


    // $ANTLR start "rule__AllowAny__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4219:1: rule__AllowAny__Group__0 : rule__AllowAny__Group__0__Impl rule__AllowAny__Group__1 ;
    public final void rule__AllowAny__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4223:1: ( rule__AllowAny__Group__0__Impl rule__AllowAny__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4224:2: rule__AllowAny__Group__0__Impl rule__AllowAny__Group__1
            {
            pushFollow(FOLLOW_rule__AllowAny__Group__0__Impl_in_rule__AllowAny__Group__08666);
            rule__AllowAny__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AllowAny__Group__1_in_rule__AllowAny__Group__08669);
            rule__AllowAny__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AllowAny__Group__0"


    // $ANTLR start "rule__AllowAny__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4231:1: rule__AllowAny__Group__0__Impl : ( () ) ;
    public final void rule__AllowAny__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4235:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4236:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4236:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4237:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAllowAnyAccess().getAllowAnyAction_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4238:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4240:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAllowAnyAccess().getAllowAnyAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AllowAny__Group__0__Impl"


    // $ANTLR start "rule__AllowAny__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4250:1: rule__AllowAny__Group__1 : rule__AllowAny__Group__1__Impl ;
    public final void rule__AllowAny__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4254:1: ( rule__AllowAny__Group__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4255:2: rule__AllowAny__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__AllowAny__Group__1__Impl_in_rule__AllowAny__Group__18727);
            rule__AllowAny__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AllowAny__Group__1"


    // $ANTLR start "rule__AllowAny__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4261:1: rule__AllowAny__Group__1__Impl : ( 'AllowAny' ) ;
    public final void rule__AllowAny__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4265:1: ( ( 'AllowAny' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4266:1: ( 'AllowAny' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4266:1: ( 'AllowAny' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4267:1: 'AllowAny'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAllowAnyAccess().getAllowAnyKeyword_1()); 
            }
            match(input,43,FOLLOW_43_in_rule__AllowAny__Group__1__Impl8755); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAllowAnyAccess().getAllowAnyKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AllowAny__Group__1__Impl"


    // $ANTLR start "rule__Replaceable__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4284:1: rule__Replaceable__Group__0 : rule__Replaceable__Group__0__Impl rule__Replaceable__Group__1 ;
    public final void rule__Replaceable__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4288:1: ( rule__Replaceable__Group__0__Impl rule__Replaceable__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4289:2: rule__Replaceable__Group__0__Impl rule__Replaceable__Group__1
            {
            pushFollow(FOLLOW_rule__Replaceable__Group__0__Impl_in_rule__Replaceable__Group__08790);
            rule__Replaceable__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Replaceable__Group__1_in_rule__Replaceable__Group__08793);
            rule__Replaceable__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Replaceable__Group__0"


    // $ANTLR start "rule__Replaceable__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4296:1: rule__Replaceable__Group__0__Impl : ( () ) ;
    public final void rule__Replaceable__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4300:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4301:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4301:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4302:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReplaceableAccess().getReplaceableAction_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4303:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4305:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReplaceableAccess().getReplaceableAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Replaceable__Group__0__Impl"


    // $ANTLR start "rule__Replaceable__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4315:1: rule__Replaceable__Group__1 : rule__Replaceable__Group__1__Impl ;
    public final void rule__Replaceable__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4319:1: ( rule__Replaceable__Group__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4320:2: rule__Replaceable__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__Replaceable__Group__1__Impl_in_rule__Replaceable__Group__18851);
            rule__Replaceable__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Replaceable__Group__1"


    // $ANTLR start "rule__Replaceable__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4326:1: rule__Replaceable__Group__1__Impl : ( 'Replaceable' ) ;
    public final void rule__Replaceable__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4330:1: ( ( 'Replaceable' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4331:1: ( 'Replaceable' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4331:1: ( 'Replaceable' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4332:1: 'Replaceable'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReplaceableAccess().getReplaceableKeyword_1()); 
            }
            match(input,44,FOLLOW_44_in_rule__Replaceable__Group__1__Impl8879); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReplaceableAccess().getReplaceableKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Replaceable__Group__1__Impl"


    // $ANTLR start "rule__Supplemental__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4349:1: rule__Supplemental__Group__0 : rule__Supplemental__Group__0__Impl rule__Supplemental__Group__1 ;
    public final void rule__Supplemental__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4353:1: ( rule__Supplemental__Group__0__Impl rule__Supplemental__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4354:2: rule__Supplemental__Group__0__Impl rule__Supplemental__Group__1
            {
            pushFollow(FOLLOW_rule__Supplemental__Group__0__Impl_in_rule__Supplemental__Group__08914);
            rule__Supplemental__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Supplemental__Group__1_in_rule__Supplemental__Group__08917);
            rule__Supplemental__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Supplemental__Group__0"


    // $ANTLR start "rule__Supplemental__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4361:1: rule__Supplemental__Group__0__Impl : ( () ) ;
    public final void rule__Supplemental__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4365:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4366:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4366:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4367:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSupplementalAccess().getSupplementalAction_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4368:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4370:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSupplementalAccess().getSupplementalAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Supplemental__Group__0__Impl"


    // $ANTLR start "rule__Supplemental__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4380:1: rule__Supplemental__Group__1 : rule__Supplemental__Group__1__Impl ;
    public final void rule__Supplemental__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4384:1: ( rule__Supplemental__Group__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4385:2: rule__Supplemental__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__Supplemental__Group__1__Impl_in_rule__Supplemental__Group__18975);
            rule__Supplemental__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Supplemental__Group__1"


    // $ANTLR start "rule__Supplemental__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4391:1: rule__Supplemental__Group__1__Impl : ( 'Supplemental' ) ;
    public final void rule__Supplemental__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4395:1: ( ( 'Supplemental' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4396:1: ( 'Supplemental' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4396:1: ( 'Supplemental' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4397:1: 'Supplemental'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSupplementalAccess().getSupplementalKeyword_1()); 
            }
            match(input,45,FOLLOW_45_in_rule__Supplemental__Group__1__Impl9003); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSupplementalAccess().getSupplementalKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Supplemental__Group__1__Impl"


    // $ANTLR start "rule__ReplaceableNamedProperties__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4414:1: rule__ReplaceableNamedProperties__Group__0 : rule__ReplaceableNamedProperties__Group__0__Impl rule__ReplaceableNamedProperties__Group__1 ;
    public final void rule__ReplaceableNamedProperties__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4418:1: ( rule__ReplaceableNamedProperties__Group__0__Impl rule__ReplaceableNamedProperties__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4419:2: rule__ReplaceableNamedProperties__Group__0__Impl rule__ReplaceableNamedProperties__Group__1
            {
            pushFollow(FOLLOW_rule__ReplaceableNamedProperties__Group__0__Impl_in_rule__ReplaceableNamedProperties__Group__09038);
            rule__ReplaceableNamedProperties__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ReplaceableNamedProperties__Group__1_in_rule__ReplaceableNamedProperties__Group__09041);
            rule__ReplaceableNamedProperties__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ReplaceableNamedProperties__Group__0"


    // $ANTLR start "rule__ReplaceableNamedProperties__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4426:1: rule__ReplaceableNamedProperties__Group__0__Impl : ( () ) ;
    public final void rule__ReplaceableNamedProperties__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4430:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4431:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4431:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4432:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReplaceableNamedPropertiesAccess().getReplaceableNamedPropertiesAction_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4433:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4435:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReplaceableNamedPropertiesAccess().getReplaceableNamedPropertiesAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ReplaceableNamedProperties__Group__0__Impl"


    // $ANTLR start "rule__ReplaceableNamedProperties__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4445:1: rule__ReplaceableNamedProperties__Group__1 : rule__ReplaceableNamedProperties__Group__1__Impl ;
    public final void rule__ReplaceableNamedProperties__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4449:1: ( rule__ReplaceableNamedProperties__Group__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4450:2: rule__ReplaceableNamedProperties__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__ReplaceableNamedProperties__Group__1__Impl_in_rule__ReplaceableNamedProperties__Group__19099);
            rule__ReplaceableNamedProperties__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ReplaceableNamedProperties__Group__1"


    // $ANTLR start "rule__ReplaceableNamedProperties__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4456:1: rule__ReplaceableNamedProperties__Group__1__Impl : ( 'ReplaceableNamedProperties' ) ;
    public final void rule__ReplaceableNamedProperties__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4460:1: ( ( 'ReplaceableNamedProperties' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4461:1: ( 'ReplaceableNamedProperties' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4461:1: ( 'ReplaceableNamedProperties' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4462:1: 'ReplaceableNamedProperties'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReplaceableNamedPropertiesAccess().getReplaceableNamedPropertiesKeyword_1()); 
            }
            match(input,46,FOLLOW_46_in_rule__ReplaceableNamedProperties__Group__1__Impl9127); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReplaceableNamedPropertiesAccess().getReplaceableNamedPropertiesKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ReplaceableNamedProperties__Group__1__Impl"


    // $ANTLR start "rule__ImplementStatement__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4479:1: rule__ImplementStatement__Group__0 : rule__ImplementStatement__Group__0__Impl rule__ImplementStatement__Group__1 ;
    public final void rule__ImplementStatement__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4483:1: ( rule__ImplementStatement__Group__0__Impl rule__ImplementStatement__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4484:2: rule__ImplementStatement__Group__0__Impl rule__ImplementStatement__Group__1
            {
            pushFollow(FOLLOW_rule__ImplementStatement__Group__0__Impl_in_rule__ImplementStatement__Group__09162);
            rule__ImplementStatement__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ImplementStatement__Group__1_in_rule__ImplementStatement__Group__09165);
            rule__ImplementStatement__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ImplementStatement__Group__0"


    // $ANTLR start "rule__ImplementStatement__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4491:1: rule__ImplementStatement__Group__0__Impl : ( ( rule__ImplementStatement__SourceAssignment_0 ) ) ;
    public final void rule__ImplementStatement__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4495:1: ( ( ( rule__ImplementStatement__SourceAssignment_0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4496:1: ( ( rule__ImplementStatement__SourceAssignment_0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4496:1: ( ( rule__ImplementStatement__SourceAssignment_0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4497:1: ( rule__ImplementStatement__SourceAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getImplementStatementAccess().getSourceAssignment_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4498:1: ( rule__ImplementStatement__SourceAssignment_0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4498:2: rule__ImplementStatement__SourceAssignment_0
            {
            pushFollow(FOLLOW_rule__ImplementStatement__SourceAssignment_0_in_rule__ImplementStatement__Group__0__Impl9192);
            rule__ImplementStatement__SourceAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getImplementStatementAccess().getSourceAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ImplementStatement__Group__0__Impl"


    // $ANTLR start "rule__ImplementStatement__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4508:1: rule__ImplementStatement__Group__1 : rule__ImplementStatement__Group__1__Impl rule__ImplementStatement__Group__2 ;
    public final void rule__ImplementStatement__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4512:1: ( rule__ImplementStatement__Group__1__Impl rule__ImplementStatement__Group__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4513:2: rule__ImplementStatement__Group__1__Impl rule__ImplementStatement__Group__2
            {
            pushFollow(FOLLOW_rule__ImplementStatement__Group__1__Impl_in_rule__ImplementStatement__Group__19222);
            rule__ImplementStatement__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ImplementStatement__Group__2_in_rule__ImplementStatement__Group__19225);
            rule__ImplementStatement__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ImplementStatement__Group__1"


    // $ANTLR start "rule__ImplementStatement__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4520:1: rule__ImplementStatement__Group__1__Impl : ( 'implements' ) ;
    public final void rule__ImplementStatement__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4524:1: ( ( 'implements' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4525:1: ( 'implements' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4525:1: ( 'implements' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4526:1: 'implements'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getImplementStatementAccess().getImplementsKeyword_1()); 
            }
            match(input,47,FOLLOW_47_in_rule__ImplementStatement__Group__1__Impl9253); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getImplementStatementAccess().getImplementsKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ImplementStatement__Group__1__Impl"


    // $ANTLR start "rule__ImplementStatement__Group__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4539:1: rule__ImplementStatement__Group__2 : rule__ImplementStatement__Group__2__Impl rule__ImplementStatement__Group__3 ;
    public final void rule__ImplementStatement__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4543:1: ( rule__ImplementStatement__Group__2__Impl rule__ImplementStatement__Group__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4544:2: rule__ImplementStatement__Group__2__Impl rule__ImplementStatement__Group__3
            {
            pushFollow(FOLLOW_rule__ImplementStatement__Group__2__Impl_in_rule__ImplementStatement__Group__29284);
            rule__ImplementStatement__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ImplementStatement__Group__3_in_rule__ImplementStatement__Group__29287);
            rule__ImplementStatement__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ImplementStatement__Group__2"


    // $ANTLR start "rule__ImplementStatement__Group__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4551:1: rule__ImplementStatement__Group__2__Impl : ( ( rule__ImplementStatement__TargetAssignment_2 ) ) ;
    public final void rule__ImplementStatement__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4555:1: ( ( ( rule__ImplementStatement__TargetAssignment_2 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4556:1: ( ( rule__ImplementStatement__TargetAssignment_2 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4556:1: ( ( rule__ImplementStatement__TargetAssignment_2 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4557:1: ( rule__ImplementStatement__TargetAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getImplementStatementAccess().getTargetAssignment_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4558:1: ( rule__ImplementStatement__TargetAssignment_2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4558:2: rule__ImplementStatement__TargetAssignment_2
            {
            pushFollow(FOLLOW_rule__ImplementStatement__TargetAssignment_2_in_rule__ImplementStatement__Group__2__Impl9314);
            rule__ImplementStatement__TargetAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getImplementStatementAccess().getTargetAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ImplementStatement__Group__2__Impl"


    // $ANTLR start "rule__ImplementStatement__Group__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4568:1: rule__ImplementStatement__Group__3 : rule__ImplementStatement__Group__3__Impl ;
    public final void rule__ImplementStatement__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4572:1: ( rule__ImplementStatement__Group__3__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4573:2: rule__ImplementStatement__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__ImplementStatement__Group__3__Impl_in_rule__ImplementStatement__Group__39344);
            rule__ImplementStatement__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ImplementStatement__Group__3"


    // $ANTLR start "rule__ImplementStatement__Group__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4579:1: rule__ImplementStatement__Group__3__Impl : ( ';' ) ;
    public final void rule__ImplementStatement__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4583:1: ( ( ';' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4584:1: ( ';' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4584:1: ( ';' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4585:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getImplementStatementAccess().getSemicolonKeyword_3()); 
            }
            match(input,25,FOLLOW_25_in_rule__ImplementStatement__Group__3__Impl9372); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getImplementStatementAccess().getSemicolonKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ImplementStatement__Group__3__Impl"


    // $ANTLR start "rule__Module__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4606:1: rule__Module__Group__0 : rule__Module__Group__0__Impl rule__Module__Group__1 ;
    public final void rule__Module__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4610:1: ( rule__Module__Group__0__Impl rule__Module__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4611:2: rule__Module__Group__0__Impl rule__Module__Group__1
            {
            pushFollow(FOLLOW_rule__Module__Group__0__Impl_in_rule__Module__Group__09411);
            rule__Module__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Module__Group__1_in_rule__Module__Group__09414);
            rule__Module__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__0"


    // $ANTLR start "rule__Module__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4618:1: rule__Module__Group__0__Impl : ( ( rule__Module__Group_0__0 )? ) ;
    public final void rule__Module__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4622:1: ( ( ( rule__Module__Group_0__0 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4623:1: ( ( rule__Module__Group_0__0 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4623:1: ( ( rule__Module__Group_0__0 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4624:1: ( rule__Module__Group_0__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getGroup_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4625:1: ( rule__Module__Group_0__0 )?
            int alt32=2;
            int LA32_0 = input.LA(1);

            if ( (LA32_0==51) ) {
                alt32=1;
            }
            switch (alt32) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4625:2: rule__Module__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__Module__Group_0__0_in_rule__Module__Group__0__Impl9441);
                    rule__Module__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getGroup_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__0__Impl"


    // $ANTLR start "rule__Module__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4635:1: rule__Module__Group__1 : rule__Module__Group__1__Impl rule__Module__Group__2 ;
    public final void rule__Module__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4639:1: ( rule__Module__Group__1__Impl rule__Module__Group__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4640:2: rule__Module__Group__1__Impl rule__Module__Group__2
            {
            pushFollow(FOLLOW_rule__Module__Group__1__Impl_in_rule__Module__Group__19472);
            rule__Module__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Module__Group__2_in_rule__Module__Group__19475);
            rule__Module__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__1"


    // $ANTLR start "rule__Module__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4647:1: rule__Module__Group__1__Impl : ( 'module' ) ;
    public final void rule__Module__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4651:1: ( ( 'module' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4652:1: ( 'module' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4652:1: ( 'module' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4653:1: 'module'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getModuleKeyword_1()); 
            }
            match(input,48,FOLLOW_48_in_rule__Module__Group__1__Impl9503); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getModuleKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__1__Impl"


    // $ANTLR start "rule__Module__Group__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4666:1: rule__Module__Group__2 : rule__Module__Group__2__Impl rule__Module__Group__3 ;
    public final void rule__Module__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4670:1: ( rule__Module__Group__2__Impl rule__Module__Group__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4671:2: rule__Module__Group__2__Impl rule__Module__Group__3
            {
            pushFollow(FOLLOW_rule__Module__Group__2__Impl_in_rule__Module__Group__29534);
            rule__Module__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Module__Group__3_in_rule__Module__Group__29537);
            rule__Module__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__2"


    // $ANTLR start "rule__Module__Group__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4678:1: rule__Module__Group__2__Impl : ( ( rule__Module__NameAssignment_2 ) ) ;
    public final void rule__Module__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4682:1: ( ( ( rule__Module__NameAssignment_2 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4683:1: ( ( rule__Module__NameAssignment_2 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4683:1: ( ( rule__Module__NameAssignment_2 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4684:1: ( rule__Module__NameAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getNameAssignment_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4685:1: ( rule__Module__NameAssignment_2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4685:2: rule__Module__NameAssignment_2
            {
            pushFollow(FOLLOW_rule__Module__NameAssignment_2_in_rule__Module__Group__2__Impl9564);
            rule__Module__NameAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getNameAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__2__Impl"


    // $ANTLR start "rule__Module__Group__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4695:1: rule__Module__Group__3 : rule__Module__Group__3__Impl rule__Module__Group__4 ;
    public final void rule__Module__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4699:1: ( rule__Module__Group__3__Impl rule__Module__Group__4 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4700:2: rule__Module__Group__3__Impl rule__Module__Group__4
            {
            pushFollow(FOLLOW_rule__Module__Group__3__Impl_in_rule__Module__Group__39594);
            rule__Module__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Module__Group__4_in_rule__Module__Group__39597);
            rule__Module__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__3"


    // $ANTLR start "rule__Module__Group__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4707:1: rule__Module__Group__3__Impl : ( '{' ) ;
    public final void rule__Module__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4711:1: ( ( '{' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4712:1: ( '{' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4712:1: ( '{' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4713:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_3()); 
            }
            match(input,49,FOLLOW_49_in_rule__Module__Group__3__Impl9625); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__3__Impl"


    // $ANTLR start "rule__Module__Group__4"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4726:1: rule__Module__Group__4 : rule__Module__Group__4__Impl rule__Module__Group__5 ;
    public final void rule__Module__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4730:1: ( rule__Module__Group__4__Impl rule__Module__Group__5 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4731:2: rule__Module__Group__4__Impl rule__Module__Group__5
            {
            pushFollow(FOLLOW_rule__Module__Group__4__Impl_in_rule__Module__Group__49656);
            rule__Module__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Module__Group__5_in_rule__Module__Group__49659);
            rule__Module__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__4"


    // $ANTLR start "rule__Module__Group__4__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4738:1: rule__Module__Group__4__Impl : ( ( ( rule__Module__DefinitionsAssignment_4 ) ) ( ( rule__Module__DefinitionsAssignment_4 )* ) ) ;
    public final void rule__Module__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4742:1: ( ( ( ( rule__Module__DefinitionsAssignment_4 ) ) ( ( rule__Module__DefinitionsAssignment_4 )* ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4743:1: ( ( ( rule__Module__DefinitionsAssignment_4 ) ) ( ( rule__Module__DefinitionsAssignment_4 )* ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4743:1: ( ( ( rule__Module__DefinitionsAssignment_4 ) ) ( ( rule__Module__DefinitionsAssignment_4 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4744:1: ( ( rule__Module__DefinitionsAssignment_4 ) ) ( ( rule__Module__DefinitionsAssignment_4 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4744:1: ( ( rule__Module__DefinitionsAssignment_4 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4745:1: ( rule__Module__DefinitionsAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getDefinitionsAssignment_4()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4746:1: ( rule__Module__DefinitionsAssignment_4 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4746:2: rule__Module__DefinitionsAssignment_4
            {
            pushFollow(FOLLOW_rule__Module__DefinitionsAssignment_4_in_rule__Module__Group__4__Impl9688);
            rule__Module__DefinitionsAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getDefinitionsAssignment_4()); 
            }

            }

            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4749:1: ( ( rule__Module__DefinitionsAssignment_4 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4750:1: ( rule__Module__DefinitionsAssignment_4 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getDefinitionsAssignment_4()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4751:1: ( rule__Module__DefinitionsAssignment_4 )*
            loop33:
            do {
                int alt33=2;
                int LA33_0 = input.LA(1);

                if ( (LA33_0==RULE_ID||LA33_0==26||LA33_0==48||LA33_0==51||LA33_0==55||LA33_0==67) ) {
                    alt33=1;
                }


                switch (alt33) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4751:2: rule__Module__DefinitionsAssignment_4
            	    {
            	    pushFollow(FOLLOW_rule__Module__DefinitionsAssignment_4_in_rule__Module__Group__4__Impl9700);
            	    rule__Module__DefinitionsAssignment_4();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop33;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getDefinitionsAssignment_4()); 
            }

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__4__Impl"


    // $ANTLR start "rule__Module__Group__5"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4762:1: rule__Module__Group__5 : rule__Module__Group__5__Impl rule__Module__Group__6 ;
    public final void rule__Module__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4766:1: ( rule__Module__Group__5__Impl rule__Module__Group__6 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4767:2: rule__Module__Group__5__Impl rule__Module__Group__6
            {
            pushFollow(FOLLOW_rule__Module__Group__5__Impl_in_rule__Module__Group__59733);
            rule__Module__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Module__Group__6_in_rule__Module__Group__59736);
            rule__Module__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__5"


    // $ANTLR start "rule__Module__Group__5__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4774:1: rule__Module__Group__5__Impl : ( '}' ) ;
    public final void rule__Module__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4778:1: ( ( '}' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4779:1: ( '}' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4779:1: ( '}' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4780:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_5()); 
            }
            match(input,50,FOLLOW_50_in_rule__Module__Group__5__Impl9764); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__5__Impl"


    // $ANTLR start "rule__Module__Group__6"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4793:1: rule__Module__Group__6 : rule__Module__Group__6__Impl ;
    public final void rule__Module__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4797:1: ( rule__Module__Group__6__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4798:2: rule__Module__Group__6__Impl
            {
            pushFollow(FOLLOW_rule__Module__Group__6__Impl_in_rule__Module__Group__69795);
            rule__Module__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__6"


    // $ANTLR start "rule__Module__Group__6__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4804:1: rule__Module__Group__6__Impl : ( ';' ) ;
    public final void rule__Module__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4808:1: ( ( ';' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4809:1: ( ';' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4809:1: ( ';' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4810:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getSemicolonKeyword_6()); 
            }
            match(input,25,FOLLOW_25_in_rule__Module__Group__6__Impl9823); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getSemicolonKeyword_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__6__Impl"


    // $ANTLR start "rule__Module__Group_0__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4837:1: rule__Module__Group_0__0 : rule__Module__Group_0__0__Impl rule__Module__Group_0__1 ;
    public final void rule__Module__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4841:1: ( rule__Module__Group_0__0__Impl rule__Module__Group_0__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4842:2: rule__Module__Group_0__0__Impl rule__Module__Group_0__1
            {
            pushFollow(FOLLOW_rule__Module__Group_0__0__Impl_in_rule__Module__Group_0__09868);
            rule__Module__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Module__Group_0__1_in_rule__Module__Group_0__09871);
            rule__Module__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group_0__0"


    // $ANTLR start "rule__Module__Group_0__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4849:1: rule__Module__Group_0__0__Impl : ( '[' ) ;
    public final void rule__Module__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4853:1: ( ( '[' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4854:1: ( '[' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4854:1: ( '[' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4855:1: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getLeftSquareBracketKeyword_0_0()); 
            }
            match(input,51,FOLLOW_51_in_rule__Module__Group_0__0__Impl9899); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getLeftSquareBracketKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group_0__0__Impl"


    // $ANTLR start "rule__Module__Group_0__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4868:1: rule__Module__Group_0__1 : rule__Module__Group_0__1__Impl rule__Module__Group_0__2 ;
    public final void rule__Module__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4872:1: ( rule__Module__Group_0__1__Impl rule__Module__Group_0__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4873:2: rule__Module__Group_0__1__Impl rule__Module__Group_0__2
            {
            pushFollow(FOLLOW_rule__Module__Group_0__1__Impl_in_rule__Module__Group_0__19930);
            rule__Module__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Module__Group_0__2_in_rule__Module__Group_0__19933);
            rule__Module__Group_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group_0__1"


    // $ANTLR start "rule__Module__Group_0__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4880:1: rule__Module__Group_0__1__Impl : ( ( rule__Module__ExtendedAttributesAssignment_0_1 ) ) ;
    public final void rule__Module__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4884:1: ( ( ( rule__Module__ExtendedAttributesAssignment_0_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4885:1: ( ( rule__Module__ExtendedAttributesAssignment_0_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4885:1: ( ( rule__Module__ExtendedAttributesAssignment_0_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4886:1: ( rule__Module__ExtendedAttributesAssignment_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getExtendedAttributesAssignment_0_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4887:1: ( rule__Module__ExtendedAttributesAssignment_0_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4887:2: rule__Module__ExtendedAttributesAssignment_0_1
            {
            pushFollow(FOLLOW_rule__Module__ExtendedAttributesAssignment_0_1_in_rule__Module__Group_0__1__Impl9960);
            rule__Module__ExtendedAttributesAssignment_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getExtendedAttributesAssignment_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group_0__1__Impl"


    // $ANTLR start "rule__Module__Group_0__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4897:1: rule__Module__Group_0__2 : rule__Module__Group_0__2__Impl rule__Module__Group_0__3 ;
    public final void rule__Module__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4901:1: ( rule__Module__Group_0__2__Impl rule__Module__Group_0__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4902:2: rule__Module__Group_0__2__Impl rule__Module__Group_0__3
            {
            pushFollow(FOLLOW_rule__Module__Group_0__2__Impl_in_rule__Module__Group_0__29990);
            rule__Module__Group_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Module__Group_0__3_in_rule__Module__Group_0__29993);
            rule__Module__Group_0__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group_0__2"


    // $ANTLR start "rule__Module__Group_0__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4909:1: rule__Module__Group_0__2__Impl : ( ( rule__Module__Group_0_2__0 )* ) ;
    public final void rule__Module__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4913:1: ( ( ( rule__Module__Group_0_2__0 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4914:1: ( ( rule__Module__Group_0_2__0 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4914:1: ( ( rule__Module__Group_0_2__0 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4915:1: ( rule__Module__Group_0_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getGroup_0_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4916:1: ( rule__Module__Group_0_2__0 )*
            loop34:
            do {
                int alt34=2;
                int LA34_0 = input.LA(1);

                if ( (LA34_0==33) ) {
                    alt34=1;
                }


                switch (alt34) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4916:2: rule__Module__Group_0_2__0
            	    {
            	    pushFollow(FOLLOW_rule__Module__Group_0_2__0_in_rule__Module__Group_0__2__Impl10020);
            	    rule__Module__Group_0_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop34;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getGroup_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group_0__2__Impl"


    // $ANTLR start "rule__Module__Group_0__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4926:1: rule__Module__Group_0__3 : rule__Module__Group_0__3__Impl ;
    public final void rule__Module__Group_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4930:1: ( rule__Module__Group_0__3__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4931:2: rule__Module__Group_0__3__Impl
            {
            pushFollow(FOLLOW_rule__Module__Group_0__3__Impl_in_rule__Module__Group_0__310051);
            rule__Module__Group_0__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group_0__3"


    // $ANTLR start "rule__Module__Group_0__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4937:1: rule__Module__Group_0__3__Impl : ( ']' ) ;
    public final void rule__Module__Group_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4941:1: ( ( ']' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4942:1: ( ']' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4942:1: ( ']' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4943:1: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getRightSquareBracketKeyword_0_3()); 
            }
            match(input,52,FOLLOW_52_in_rule__Module__Group_0__3__Impl10079); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getRightSquareBracketKeyword_0_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group_0__3__Impl"


    // $ANTLR start "rule__Module__Group_0_2__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4964:1: rule__Module__Group_0_2__0 : rule__Module__Group_0_2__0__Impl rule__Module__Group_0_2__1 ;
    public final void rule__Module__Group_0_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4968:1: ( rule__Module__Group_0_2__0__Impl rule__Module__Group_0_2__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4969:2: rule__Module__Group_0_2__0__Impl rule__Module__Group_0_2__1
            {
            pushFollow(FOLLOW_rule__Module__Group_0_2__0__Impl_in_rule__Module__Group_0_2__010118);
            rule__Module__Group_0_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Module__Group_0_2__1_in_rule__Module__Group_0_2__010121);
            rule__Module__Group_0_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group_0_2__0"


    // $ANTLR start "rule__Module__Group_0_2__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4976:1: rule__Module__Group_0_2__0__Impl : ( ',' ) ;
    public final void rule__Module__Group_0_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4980:1: ( ( ',' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4981:1: ( ',' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4981:1: ( ',' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4982:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getCommaKeyword_0_2_0()); 
            }
            match(input,33,FOLLOW_33_in_rule__Module__Group_0_2__0__Impl10149); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getCommaKeyword_0_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group_0_2__0__Impl"


    // $ANTLR start "rule__Module__Group_0_2__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4995:1: rule__Module__Group_0_2__1 : rule__Module__Group_0_2__1__Impl ;
    public final void rule__Module__Group_0_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:4999:1: ( rule__Module__Group_0_2__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5000:2: rule__Module__Group_0_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Module__Group_0_2__1__Impl_in_rule__Module__Group_0_2__110180);
            rule__Module__Group_0_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group_0_2__1"


    // $ANTLR start "rule__Module__Group_0_2__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5006:1: rule__Module__Group_0_2__1__Impl : ( ( rule__Module__ExtendedAttributesAssignment_0_2_1 ) ) ;
    public final void rule__Module__Group_0_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5010:1: ( ( ( rule__Module__ExtendedAttributesAssignment_0_2_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5011:1: ( ( rule__Module__ExtendedAttributesAssignment_0_2_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5011:1: ( ( rule__Module__ExtendedAttributesAssignment_0_2_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5012:1: ( rule__Module__ExtendedAttributesAssignment_0_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getExtendedAttributesAssignment_0_2_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5013:1: ( rule__Module__ExtendedAttributesAssignment_0_2_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5013:2: rule__Module__ExtendedAttributesAssignment_0_2_1
            {
            pushFollow(FOLLOW_rule__Module__ExtendedAttributesAssignment_0_2_1_in_rule__Module__Group_0_2__1__Impl10207);
            rule__Module__ExtendedAttributesAssignment_0_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getExtendedAttributesAssignment_0_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group_0_2__1__Impl"


    // $ANTLR start "rule__Prefix__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5027:1: rule__Prefix__Group__0 : rule__Prefix__Group__0__Impl rule__Prefix__Group__1 ;
    public final void rule__Prefix__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5031:1: ( rule__Prefix__Group__0__Impl rule__Prefix__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5032:2: rule__Prefix__Group__0__Impl rule__Prefix__Group__1
            {
            pushFollow(FOLLOW_rule__Prefix__Group__0__Impl_in_rule__Prefix__Group__010241);
            rule__Prefix__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Prefix__Group__1_in_rule__Prefix__Group__010244);
            rule__Prefix__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Prefix__Group__0"


    // $ANTLR start "rule__Prefix__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5039:1: rule__Prefix__Group__0__Impl : ( 'Prefix' ) ;
    public final void rule__Prefix__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5043:1: ( ( 'Prefix' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5044:1: ( 'Prefix' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5044:1: ( 'Prefix' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5045:1: 'Prefix'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrefixAccess().getPrefixKeyword_0()); 
            }
            match(input,53,FOLLOW_53_in_rule__Prefix__Group__0__Impl10272); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrefixAccess().getPrefixKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Prefix__Group__0__Impl"


    // $ANTLR start "rule__Prefix__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5058:1: rule__Prefix__Group__1 : rule__Prefix__Group__1__Impl rule__Prefix__Group__2 ;
    public final void rule__Prefix__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5062:1: ( rule__Prefix__Group__1__Impl rule__Prefix__Group__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5063:2: rule__Prefix__Group__1__Impl rule__Prefix__Group__2
            {
            pushFollow(FOLLOW_rule__Prefix__Group__1__Impl_in_rule__Prefix__Group__110303);
            rule__Prefix__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Prefix__Group__2_in_rule__Prefix__Group__110306);
            rule__Prefix__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Prefix__Group__1"


    // $ANTLR start "rule__Prefix__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5070:1: rule__Prefix__Group__1__Impl : ( '=' ) ;
    public final void rule__Prefix__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5074:1: ( ( '=' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5075:1: ( '=' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5075:1: ( '=' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5076:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrefixAccess().getEqualsSignKeyword_1()); 
            }
            match(input,35,FOLLOW_35_in_rule__Prefix__Group__1__Impl10334); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrefixAccess().getEqualsSignKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Prefix__Group__1__Impl"


    // $ANTLR start "rule__Prefix__Group__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5089:1: rule__Prefix__Group__2 : rule__Prefix__Group__2__Impl ;
    public final void rule__Prefix__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5093:1: ( rule__Prefix__Group__2__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5094:2: rule__Prefix__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__Prefix__Group__2__Impl_in_rule__Prefix__Group__210365);
            rule__Prefix__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Prefix__Group__2"


    // $ANTLR start "rule__Prefix__Group__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5100:1: rule__Prefix__Group__2__Impl : ( ( rule__Prefix__ValueAssignment_2 ) ) ;
    public final void rule__Prefix__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5104:1: ( ( ( rule__Prefix__ValueAssignment_2 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5105:1: ( ( rule__Prefix__ValueAssignment_2 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5105:1: ( ( rule__Prefix__ValueAssignment_2 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5106:1: ( rule__Prefix__ValueAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrefixAccess().getValueAssignment_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5107:1: ( rule__Prefix__ValueAssignment_2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5107:2: rule__Prefix__ValueAssignment_2
            {
            pushFollow(FOLLOW_rule__Prefix__ValueAssignment_2_in_rule__Prefix__Group__2__Impl10392);
            rule__Prefix__ValueAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrefixAccess().getValueAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Prefix__Group__2__Impl"


    // $ANTLR start "rule__NamespaceObject__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5123:1: rule__NamespaceObject__Group__0 : rule__NamespaceObject__Group__0__Impl rule__NamespaceObject__Group__1 ;
    public final void rule__NamespaceObject__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5127:1: ( rule__NamespaceObject__Group__0__Impl rule__NamespaceObject__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5128:2: rule__NamespaceObject__Group__0__Impl rule__NamespaceObject__Group__1
            {
            pushFollow(FOLLOW_rule__NamespaceObject__Group__0__Impl_in_rule__NamespaceObject__Group__010428);
            rule__NamespaceObject__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__NamespaceObject__Group__1_in_rule__NamespaceObject__Group__010431);
            rule__NamespaceObject__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamespaceObject__Group__0"


    // $ANTLR start "rule__NamespaceObject__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5135:1: rule__NamespaceObject__Group__0__Impl : ( 'NamespaceObject' ) ;
    public final void rule__NamespaceObject__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5139:1: ( ( 'NamespaceObject' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5140:1: ( 'NamespaceObject' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5140:1: ( 'NamespaceObject' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5141:1: 'NamespaceObject'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamespaceObjectAccess().getNamespaceObjectKeyword_0()); 
            }
            match(input,54,FOLLOW_54_in_rule__NamespaceObject__Group__0__Impl10459); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamespaceObjectAccess().getNamespaceObjectKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamespaceObject__Group__0__Impl"


    // $ANTLR start "rule__NamespaceObject__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5154:1: rule__NamespaceObject__Group__1 : rule__NamespaceObject__Group__1__Impl ;
    public final void rule__NamespaceObject__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5158:1: ( rule__NamespaceObject__Group__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5159:2: rule__NamespaceObject__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__NamespaceObject__Group__1__Impl_in_rule__NamespaceObject__Group__110490);
            rule__NamespaceObject__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamespaceObject__Group__1"


    // $ANTLR start "rule__NamespaceObject__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5165:1: rule__NamespaceObject__Group__1__Impl : ( () ) ;
    public final void rule__NamespaceObject__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5169:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5170:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5170:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5171:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamespaceObjectAccess().getNamespaceObjectAction_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5172:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5174:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamespaceObjectAccess().getNamespaceObjectAction_1()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamespaceObject__Group__1__Impl"


    // $ANTLR start "rule__Interface__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5188:1: rule__Interface__Group__0 : rule__Interface__Group__0__Impl rule__Interface__Group__1 ;
    public final void rule__Interface__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5192:1: ( rule__Interface__Group__0__Impl rule__Interface__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5193:2: rule__Interface__Group__0__Impl rule__Interface__Group__1
            {
            pushFollow(FOLLOW_rule__Interface__Group__0__Impl_in_rule__Interface__Group__010552);
            rule__Interface__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Interface__Group__1_in_rule__Interface__Group__010555);
            rule__Interface__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__0"


    // $ANTLR start "rule__Interface__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5200:1: rule__Interface__Group__0__Impl : ( ( rule__Interface__Group_0__0 )? ) ;
    public final void rule__Interface__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5204:1: ( ( ( rule__Interface__Group_0__0 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5205:1: ( ( rule__Interface__Group_0__0 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5205:1: ( ( rule__Interface__Group_0__0 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5206:1: ( rule__Interface__Group_0__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getGroup_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5207:1: ( rule__Interface__Group_0__0 )?
            int alt35=2;
            int LA35_0 = input.LA(1);

            if ( (LA35_0==51) ) {
                alt35=1;
            }
            switch (alt35) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5207:2: rule__Interface__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__Interface__Group_0__0_in_rule__Interface__Group__0__Impl10582);
                    rule__Interface__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getGroup_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__0__Impl"


    // $ANTLR start "rule__Interface__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5217:1: rule__Interface__Group__1 : rule__Interface__Group__1__Impl rule__Interface__Group__2 ;
    public final void rule__Interface__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5221:1: ( rule__Interface__Group__1__Impl rule__Interface__Group__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5222:2: rule__Interface__Group__1__Impl rule__Interface__Group__2
            {
            pushFollow(FOLLOW_rule__Interface__Group__1__Impl_in_rule__Interface__Group__110613);
            rule__Interface__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Interface__Group__2_in_rule__Interface__Group__110616);
            rule__Interface__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__1"


    // $ANTLR start "rule__Interface__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5229:1: rule__Interface__Group__1__Impl : ( 'interface' ) ;
    public final void rule__Interface__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5233:1: ( ( 'interface' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5234:1: ( 'interface' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5234:1: ( 'interface' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5235:1: 'interface'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getInterfaceKeyword_1()); 
            }
            match(input,55,FOLLOW_55_in_rule__Interface__Group__1__Impl10644); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getInterfaceKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__1__Impl"


    // $ANTLR start "rule__Interface__Group__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5248:1: rule__Interface__Group__2 : rule__Interface__Group__2__Impl rule__Interface__Group__3 ;
    public final void rule__Interface__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5252:1: ( rule__Interface__Group__2__Impl rule__Interface__Group__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5253:2: rule__Interface__Group__2__Impl rule__Interface__Group__3
            {
            pushFollow(FOLLOW_rule__Interface__Group__2__Impl_in_rule__Interface__Group__210675);
            rule__Interface__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Interface__Group__3_in_rule__Interface__Group__210678);
            rule__Interface__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__2"


    // $ANTLR start "rule__Interface__Group__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5260:1: rule__Interface__Group__2__Impl : ( ( rule__Interface__NameAssignment_2 ) ) ;
    public final void rule__Interface__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5264:1: ( ( ( rule__Interface__NameAssignment_2 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5265:1: ( ( rule__Interface__NameAssignment_2 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5265:1: ( ( rule__Interface__NameAssignment_2 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5266:1: ( rule__Interface__NameAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getNameAssignment_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5267:1: ( rule__Interface__NameAssignment_2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5267:2: rule__Interface__NameAssignment_2
            {
            pushFollow(FOLLOW_rule__Interface__NameAssignment_2_in_rule__Interface__Group__2__Impl10705);
            rule__Interface__NameAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getNameAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__2__Impl"


    // $ANTLR start "rule__Interface__Group__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5277:1: rule__Interface__Group__3 : rule__Interface__Group__3__Impl rule__Interface__Group__4 ;
    public final void rule__Interface__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5281:1: ( rule__Interface__Group__3__Impl rule__Interface__Group__4 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5282:2: rule__Interface__Group__3__Impl rule__Interface__Group__4
            {
            pushFollow(FOLLOW_rule__Interface__Group__3__Impl_in_rule__Interface__Group__310735);
            rule__Interface__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Interface__Group__4_in_rule__Interface__Group__310738);
            rule__Interface__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__3"


    // $ANTLR start "rule__Interface__Group__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5289:1: rule__Interface__Group__3__Impl : ( ( rule__Interface__Group_3__0 )? ) ;
    public final void rule__Interface__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5293:1: ( ( ( rule__Interface__Group_3__0 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5294:1: ( ( rule__Interface__Group_3__0 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5294:1: ( ( rule__Interface__Group_3__0 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5295:1: ( rule__Interface__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getGroup_3()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5296:1: ( rule__Interface__Group_3__0 )?
            int alt36=2;
            int LA36_0 = input.LA(1);

            if ( (LA36_0==56) ) {
                alt36=1;
            }
            switch (alt36) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5296:2: rule__Interface__Group_3__0
                    {
                    pushFollow(FOLLOW_rule__Interface__Group_3__0_in_rule__Interface__Group__3__Impl10765);
                    rule__Interface__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__3__Impl"


    // $ANTLR start "rule__Interface__Group__4"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5306:1: rule__Interface__Group__4 : rule__Interface__Group__4__Impl rule__Interface__Group__5 ;
    public final void rule__Interface__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5310:1: ( rule__Interface__Group__4__Impl rule__Interface__Group__5 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5311:2: rule__Interface__Group__4__Impl rule__Interface__Group__5
            {
            pushFollow(FOLLOW_rule__Interface__Group__4__Impl_in_rule__Interface__Group__410796);
            rule__Interface__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Interface__Group__5_in_rule__Interface__Group__410799);
            rule__Interface__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__4"


    // $ANTLR start "rule__Interface__Group__4__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5318:1: rule__Interface__Group__4__Impl : ( ( rule__Interface__Group_4__0 )? ) ;
    public final void rule__Interface__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5322:1: ( ( ( rule__Interface__Group_4__0 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5323:1: ( ( rule__Interface__Group_4__0 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5323:1: ( ( rule__Interface__Group_4__0 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5324:1: ( rule__Interface__Group_4__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getGroup_4()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5325:1: ( rule__Interface__Group_4__0 )?
            int alt37=2;
            int LA37_0 = input.LA(1);

            if ( (LA37_0==49) ) {
                alt37=1;
            }
            switch (alt37) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5325:2: rule__Interface__Group_4__0
                    {
                    pushFollow(FOLLOW_rule__Interface__Group_4__0_in_rule__Interface__Group__4__Impl10826);
                    rule__Interface__Group_4__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getGroup_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__4__Impl"


    // $ANTLR start "rule__Interface__Group__5"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5335:1: rule__Interface__Group__5 : rule__Interface__Group__5__Impl ;
    public final void rule__Interface__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5339:1: ( rule__Interface__Group__5__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5340:2: rule__Interface__Group__5__Impl
            {
            pushFollow(FOLLOW_rule__Interface__Group__5__Impl_in_rule__Interface__Group__510857);
            rule__Interface__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__5"


    // $ANTLR start "rule__Interface__Group__5__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5346:1: rule__Interface__Group__5__Impl : ( ';' ) ;
    public final void rule__Interface__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5350:1: ( ( ';' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5351:1: ( ';' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5351:1: ( ';' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5352:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getSemicolonKeyword_5()); 
            }
            match(input,25,FOLLOW_25_in_rule__Interface__Group__5__Impl10885); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getSemicolonKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__5__Impl"


    // $ANTLR start "rule__Interface__Group_0__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5377:1: rule__Interface__Group_0__0 : rule__Interface__Group_0__0__Impl rule__Interface__Group_0__1 ;
    public final void rule__Interface__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5381:1: ( rule__Interface__Group_0__0__Impl rule__Interface__Group_0__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5382:2: rule__Interface__Group_0__0__Impl rule__Interface__Group_0__1
            {
            pushFollow(FOLLOW_rule__Interface__Group_0__0__Impl_in_rule__Interface__Group_0__010928);
            rule__Interface__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Interface__Group_0__1_in_rule__Interface__Group_0__010931);
            rule__Interface__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_0__0"


    // $ANTLR start "rule__Interface__Group_0__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5389:1: rule__Interface__Group_0__0__Impl : ( '[' ) ;
    public final void rule__Interface__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5393:1: ( ( '[' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5394:1: ( '[' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5394:1: ( '[' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5395:1: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getLeftSquareBracketKeyword_0_0()); 
            }
            match(input,51,FOLLOW_51_in_rule__Interface__Group_0__0__Impl10959); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getLeftSquareBracketKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_0__0__Impl"


    // $ANTLR start "rule__Interface__Group_0__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5408:1: rule__Interface__Group_0__1 : rule__Interface__Group_0__1__Impl rule__Interface__Group_0__2 ;
    public final void rule__Interface__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5412:1: ( rule__Interface__Group_0__1__Impl rule__Interface__Group_0__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5413:2: rule__Interface__Group_0__1__Impl rule__Interface__Group_0__2
            {
            pushFollow(FOLLOW_rule__Interface__Group_0__1__Impl_in_rule__Interface__Group_0__110990);
            rule__Interface__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Interface__Group_0__2_in_rule__Interface__Group_0__110993);
            rule__Interface__Group_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_0__1"


    // $ANTLR start "rule__Interface__Group_0__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5420:1: rule__Interface__Group_0__1__Impl : ( ( rule__Interface__ExtendedAttributesAssignment_0_1 ) ) ;
    public final void rule__Interface__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5424:1: ( ( ( rule__Interface__ExtendedAttributesAssignment_0_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5425:1: ( ( rule__Interface__ExtendedAttributesAssignment_0_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5425:1: ( ( rule__Interface__ExtendedAttributesAssignment_0_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5426:1: ( rule__Interface__ExtendedAttributesAssignment_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getExtendedAttributesAssignment_0_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5427:1: ( rule__Interface__ExtendedAttributesAssignment_0_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5427:2: rule__Interface__ExtendedAttributesAssignment_0_1
            {
            pushFollow(FOLLOW_rule__Interface__ExtendedAttributesAssignment_0_1_in_rule__Interface__Group_0__1__Impl11020);
            rule__Interface__ExtendedAttributesAssignment_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getExtendedAttributesAssignment_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_0__1__Impl"


    // $ANTLR start "rule__Interface__Group_0__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5437:1: rule__Interface__Group_0__2 : rule__Interface__Group_0__2__Impl rule__Interface__Group_0__3 ;
    public final void rule__Interface__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5441:1: ( rule__Interface__Group_0__2__Impl rule__Interface__Group_0__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5442:2: rule__Interface__Group_0__2__Impl rule__Interface__Group_0__3
            {
            pushFollow(FOLLOW_rule__Interface__Group_0__2__Impl_in_rule__Interface__Group_0__211050);
            rule__Interface__Group_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Interface__Group_0__3_in_rule__Interface__Group_0__211053);
            rule__Interface__Group_0__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_0__2"


    // $ANTLR start "rule__Interface__Group_0__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5449:1: rule__Interface__Group_0__2__Impl : ( ( rule__Interface__Group_0_2__0 )* ) ;
    public final void rule__Interface__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5453:1: ( ( ( rule__Interface__Group_0_2__0 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5454:1: ( ( rule__Interface__Group_0_2__0 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5454:1: ( ( rule__Interface__Group_0_2__0 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5455:1: ( rule__Interface__Group_0_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getGroup_0_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5456:1: ( rule__Interface__Group_0_2__0 )*
            loop38:
            do {
                int alt38=2;
                int LA38_0 = input.LA(1);

                if ( (LA38_0==33) ) {
                    alt38=1;
                }


                switch (alt38) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5456:2: rule__Interface__Group_0_2__0
            	    {
            	    pushFollow(FOLLOW_rule__Interface__Group_0_2__0_in_rule__Interface__Group_0__2__Impl11080);
            	    rule__Interface__Group_0_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop38;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getGroup_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_0__2__Impl"


    // $ANTLR start "rule__Interface__Group_0__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5466:1: rule__Interface__Group_0__3 : rule__Interface__Group_0__3__Impl ;
    public final void rule__Interface__Group_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5470:1: ( rule__Interface__Group_0__3__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5471:2: rule__Interface__Group_0__3__Impl
            {
            pushFollow(FOLLOW_rule__Interface__Group_0__3__Impl_in_rule__Interface__Group_0__311111);
            rule__Interface__Group_0__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_0__3"


    // $ANTLR start "rule__Interface__Group_0__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5477:1: rule__Interface__Group_0__3__Impl : ( ']' ) ;
    public final void rule__Interface__Group_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5481:1: ( ( ']' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5482:1: ( ']' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5482:1: ( ']' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5483:1: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getRightSquareBracketKeyword_0_3()); 
            }
            match(input,52,FOLLOW_52_in_rule__Interface__Group_0__3__Impl11139); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getRightSquareBracketKeyword_0_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_0__3__Impl"


    // $ANTLR start "rule__Interface__Group_0_2__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5504:1: rule__Interface__Group_0_2__0 : rule__Interface__Group_0_2__0__Impl rule__Interface__Group_0_2__1 ;
    public final void rule__Interface__Group_0_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5508:1: ( rule__Interface__Group_0_2__0__Impl rule__Interface__Group_0_2__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5509:2: rule__Interface__Group_0_2__0__Impl rule__Interface__Group_0_2__1
            {
            pushFollow(FOLLOW_rule__Interface__Group_0_2__0__Impl_in_rule__Interface__Group_0_2__011178);
            rule__Interface__Group_0_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Interface__Group_0_2__1_in_rule__Interface__Group_0_2__011181);
            rule__Interface__Group_0_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_0_2__0"


    // $ANTLR start "rule__Interface__Group_0_2__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5516:1: rule__Interface__Group_0_2__0__Impl : ( ',' ) ;
    public final void rule__Interface__Group_0_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5520:1: ( ( ',' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5521:1: ( ',' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5521:1: ( ',' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5522:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getCommaKeyword_0_2_0()); 
            }
            match(input,33,FOLLOW_33_in_rule__Interface__Group_0_2__0__Impl11209); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getCommaKeyword_0_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_0_2__0__Impl"


    // $ANTLR start "rule__Interface__Group_0_2__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5535:1: rule__Interface__Group_0_2__1 : rule__Interface__Group_0_2__1__Impl ;
    public final void rule__Interface__Group_0_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5539:1: ( rule__Interface__Group_0_2__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5540:2: rule__Interface__Group_0_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Interface__Group_0_2__1__Impl_in_rule__Interface__Group_0_2__111240);
            rule__Interface__Group_0_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_0_2__1"


    // $ANTLR start "rule__Interface__Group_0_2__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5546:1: rule__Interface__Group_0_2__1__Impl : ( ( rule__Interface__ExtendedAttributeAssignment_0_2_1 ) ) ;
    public final void rule__Interface__Group_0_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5550:1: ( ( ( rule__Interface__ExtendedAttributeAssignment_0_2_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5551:1: ( ( rule__Interface__ExtendedAttributeAssignment_0_2_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5551:1: ( ( rule__Interface__ExtendedAttributeAssignment_0_2_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5552:1: ( rule__Interface__ExtendedAttributeAssignment_0_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getExtendedAttributeAssignment_0_2_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5553:1: ( rule__Interface__ExtendedAttributeAssignment_0_2_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5553:2: rule__Interface__ExtendedAttributeAssignment_0_2_1
            {
            pushFollow(FOLLOW_rule__Interface__ExtendedAttributeAssignment_0_2_1_in_rule__Interface__Group_0_2__1__Impl11267);
            rule__Interface__ExtendedAttributeAssignment_0_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getExtendedAttributeAssignment_0_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_0_2__1__Impl"


    // $ANTLR start "rule__Interface__Group_3__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5567:1: rule__Interface__Group_3__0 : rule__Interface__Group_3__0__Impl rule__Interface__Group_3__1 ;
    public final void rule__Interface__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5571:1: ( rule__Interface__Group_3__0__Impl rule__Interface__Group_3__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5572:2: rule__Interface__Group_3__0__Impl rule__Interface__Group_3__1
            {
            pushFollow(FOLLOW_rule__Interface__Group_3__0__Impl_in_rule__Interface__Group_3__011301);
            rule__Interface__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Interface__Group_3__1_in_rule__Interface__Group_3__011304);
            rule__Interface__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_3__0"


    // $ANTLR start "rule__Interface__Group_3__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5579:1: rule__Interface__Group_3__0__Impl : ( ( rule__Interface__Group_3_0__0 ) ) ;
    public final void rule__Interface__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5583:1: ( ( ( rule__Interface__Group_3_0__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5584:1: ( ( rule__Interface__Group_3_0__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5584:1: ( ( rule__Interface__Group_3_0__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5585:1: ( rule__Interface__Group_3_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getGroup_3_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5586:1: ( rule__Interface__Group_3_0__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5586:2: rule__Interface__Group_3_0__0
            {
            pushFollow(FOLLOW_rule__Interface__Group_3_0__0_in_rule__Interface__Group_3__0__Impl11331);
            rule__Interface__Group_3_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getGroup_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_3__0__Impl"


    // $ANTLR start "rule__Interface__Group_3__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5596:1: rule__Interface__Group_3__1 : rule__Interface__Group_3__1__Impl ;
    public final void rule__Interface__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5600:1: ( rule__Interface__Group_3__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5601:2: rule__Interface__Group_3__1__Impl
            {
            pushFollow(FOLLOW_rule__Interface__Group_3__1__Impl_in_rule__Interface__Group_3__111361);
            rule__Interface__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_3__1"


    // $ANTLR start "rule__Interface__Group_3__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5607:1: rule__Interface__Group_3__1__Impl : ( ( rule__Interface__Group_3_1__0 )* ) ;
    public final void rule__Interface__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5611:1: ( ( ( rule__Interface__Group_3_1__0 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5612:1: ( ( rule__Interface__Group_3_1__0 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5612:1: ( ( rule__Interface__Group_3_1__0 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5613:1: ( rule__Interface__Group_3_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getGroup_3_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5614:1: ( rule__Interface__Group_3_1__0 )*
            loop39:
            do {
                int alt39=2;
                int LA39_0 = input.LA(1);

                if ( (LA39_0==33) ) {
                    alt39=1;
                }


                switch (alt39) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5614:2: rule__Interface__Group_3_1__0
            	    {
            	    pushFollow(FOLLOW_rule__Interface__Group_3_1__0_in_rule__Interface__Group_3__1__Impl11388);
            	    rule__Interface__Group_3_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop39;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getGroup_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_3__1__Impl"


    // $ANTLR start "rule__Interface__Group_3_0__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5628:1: rule__Interface__Group_3_0__0 : rule__Interface__Group_3_0__0__Impl rule__Interface__Group_3_0__1 ;
    public final void rule__Interface__Group_3_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5632:1: ( rule__Interface__Group_3_0__0__Impl rule__Interface__Group_3_0__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5633:2: rule__Interface__Group_3_0__0__Impl rule__Interface__Group_3_0__1
            {
            pushFollow(FOLLOW_rule__Interface__Group_3_0__0__Impl_in_rule__Interface__Group_3_0__011423);
            rule__Interface__Group_3_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Interface__Group_3_0__1_in_rule__Interface__Group_3_0__011426);
            rule__Interface__Group_3_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_3_0__0"


    // $ANTLR start "rule__Interface__Group_3_0__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5640:1: rule__Interface__Group_3_0__0__Impl : ( ':' ) ;
    public final void rule__Interface__Group_3_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5644:1: ( ( ':' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5645:1: ( ':' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5645:1: ( ':' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5646:1: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getColonKeyword_3_0_0()); 
            }
            match(input,56,FOLLOW_56_in_rule__Interface__Group_3_0__0__Impl11454); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getColonKeyword_3_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_3_0__0__Impl"


    // $ANTLR start "rule__Interface__Group_3_0__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5659:1: rule__Interface__Group_3_0__1 : rule__Interface__Group_3_0__1__Impl ;
    public final void rule__Interface__Group_3_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5663:1: ( rule__Interface__Group_3_0__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5664:2: rule__Interface__Group_3_0__1__Impl
            {
            pushFollow(FOLLOW_rule__Interface__Group_3_0__1__Impl_in_rule__Interface__Group_3_0__111485);
            rule__Interface__Group_3_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_3_0__1"


    // $ANTLR start "rule__Interface__Group_3_0__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5670:1: rule__Interface__Group_3_0__1__Impl : ( ( rule__Interface__SuperTypeAssignment_3_0_1 ) ) ;
    public final void rule__Interface__Group_3_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5674:1: ( ( ( rule__Interface__SuperTypeAssignment_3_0_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5675:1: ( ( rule__Interface__SuperTypeAssignment_3_0_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5675:1: ( ( rule__Interface__SuperTypeAssignment_3_0_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5676:1: ( rule__Interface__SuperTypeAssignment_3_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getSuperTypeAssignment_3_0_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5677:1: ( rule__Interface__SuperTypeAssignment_3_0_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5677:2: rule__Interface__SuperTypeAssignment_3_0_1
            {
            pushFollow(FOLLOW_rule__Interface__SuperTypeAssignment_3_0_1_in_rule__Interface__Group_3_0__1__Impl11512);
            rule__Interface__SuperTypeAssignment_3_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getSuperTypeAssignment_3_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_3_0__1__Impl"


    // $ANTLR start "rule__Interface__Group_3_1__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5691:1: rule__Interface__Group_3_1__0 : rule__Interface__Group_3_1__0__Impl rule__Interface__Group_3_1__1 ;
    public final void rule__Interface__Group_3_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5695:1: ( rule__Interface__Group_3_1__0__Impl rule__Interface__Group_3_1__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5696:2: rule__Interface__Group_3_1__0__Impl rule__Interface__Group_3_1__1
            {
            pushFollow(FOLLOW_rule__Interface__Group_3_1__0__Impl_in_rule__Interface__Group_3_1__011546);
            rule__Interface__Group_3_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Interface__Group_3_1__1_in_rule__Interface__Group_3_1__011549);
            rule__Interface__Group_3_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_3_1__0"


    // $ANTLR start "rule__Interface__Group_3_1__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5703:1: rule__Interface__Group_3_1__0__Impl : ( ',' ) ;
    public final void rule__Interface__Group_3_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5707:1: ( ( ',' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5708:1: ( ',' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5708:1: ( ',' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5709:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getCommaKeyword_3_1_0()); 
            }
            match(input,33,FOLLOW_33_in_rule__Interface__Group_3_1__0__Impl11577); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getCommaKeyword_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_3_1__0__Impl"


    // $ANTLR start "rule__Interface__Group_3_1__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5722:1: rule__Interface__Group_3_1__1 : rule__Interface__Group_3_1__1__Impl ;
    public final void rule__Interface__Group_3_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5726:1: ( rule__Interface__Group_3_1__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5727:2: rule__Interface__Group_3_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Interface__Group_3_1__1__Impl_in_rule__Interface__Group_3_1__111608);
            rule__Interface__Group_3_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_3_1__1"


    // $ANTLR start "rule__Interface__Group_3_1__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5733:1: rule__Interface__Group_3_1__1__Impl : ( ( rule__Interface__SuperTypeAssignment_3_1_1 ) ) ;
    public final void rule__Interface__Group_3_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5737:1: ( ( ( rule__Interface__SuperTypeAssignment_3_1_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5738:1: ( ( rule__Interface__SuperTypeAssignment_3_1_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5738:1: ( ( rule__Interface__SuperTypeAssignment_3_1_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5739:1: ( rule__Interface__SuperTypeAssignment_3_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getSuperTypeAssignment_3_1_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5740:1: ( rule__Interface__SuperTypeAssignment_3_1_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5740:2: rule__Interface__SuperTypeAssignment_3_1_1
            {
            pushFollow(FOLLOW_rule__Interface__SuperTypeAssignment_3_1_1_in_rule__Interface__Group_3_1__1__Impl11635);
            rule__Interface__SuperTypeAssignment_3_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getSuperTypeAssignment_3_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_3_1__1__Impl"


    // $ANTLR start "rule__Interface__Group_4__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5754:1: rule__Interface__Group_4__0 : rule__Interface__Group_4__0__Impl rule__Interface__Group_4__1 ;
    public final void rule__Interface__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5758:1: ( rule__Interface__Group_4__0__Impl rule__Interface__Group_4__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5759:2: rule__Interface__Group_4__0__Impl rule__Interface__Group_4__1
            {
            pushFollow(FOLLOW_rule__Interface__Group_4__0__Impl_in_rule__Interface__Group_4__011669);
            rule__Interface__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Interface__Group_4__1_in_rule__Interface__Group_4__011672);
            rule__Interface__Group_4__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_4__0"


    // $ANTLR start "rule__Interface__Group_4__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5766:1: rule__Interface__Group_4__0__Impl : ( '{' ) ;
    public final void rule__Interface__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5770:1: ( ( '{' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5771:1: ( '{' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5771:1: ( '{' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5772:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getLeftCurlyBracketKeyword_4_0()); 
            }
            match(input,49,FOLLOW_49_in_rule__Interface__Group_4__0__Impl11700); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getLeftCurlyBracketKeyword_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_4__0__Impl"


    // $ANTLR start "rule__Interface__Group_4__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5785:1: rule__Interface__Group_4__1 : rule__Interface__Group_4__1__Impl rule__Interface__Group_4__2 ;
    public final void rule__Interface__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5789:1: ( rule__Interface__Group_4__1__Impl rule__Interface__Group_4__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5790:2: rule__Interface__Group_4__1__Impl rule__Interface__Group_4__2
            {
            pushFollow(FOLLOW_rule__Interface__Group_4__1__Impl_in_rule__Interface__Group_4__111731);
            rule__Interface__Group_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Interface__Group_4__2_in_rule__Interface__Group_4__111734);
            rule__Interface__Group_4__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_4__1"


    // $ANTLR start "rule__Interface__Group_4__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5797:1: rule__Interface__Group_4__1__Impl : ( ( rule__Interface__MembersAssignment_4_1 )* ) ;
    public final void rule__Interface__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5801:1: ( ( ( rule__Interface__MembersAssignment_4_1 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5802:1: ( ( rule__Interface__MembersAssignment_4_1 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5802:1: ( ( rule__Interface__MembersAssignment_4_1 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5803:1: ( rule__Interface__MembersAssignment_4_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getMembersAssignment_4_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5804:1: ( rule__Interface__MembersAssignment_4_1 )*
            loop40:
            do {
                int alt40=2;
                int LA40_0 = input.LA(1);

                if ( (LA40_0==RULE_ID||(LA40_0>=12 && LA40_0<=23)||LA40_0==27||LA40_0==51||(LA40_0>=58 && LA40_0<=64)||LA40_0==68||LA40_0==71||(LA40_0>=76 && LA40_0<=77)) ) {
                    alt40=1;
                }


                switch (alt40) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5804:2: rule__Interface__MembersAssignment_4_1
            	    {
            	    pushFollow(FOLLOW_rule__Interface__MembersAssignment_4_1_in_rule__Interface__Group_4__1__Impl11761);
            	    rule__Interface__MembersAssignment_4_1();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop40;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getMembersAssignment_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_4__1__Impl"


    // $ANTLR start "rule__Interface__Group_4__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5814:1: rule__Interface__Group_4__2 : rule__Interface__Group_4__2__Impl ;
    public final void rule__Interface__Group_4__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5818:1: ( rule__Interface__Group_4__2__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5819:2: rule__Interface__Group_4__2__Impl
            {
            pushFollow(FOLLOW_rule__Interface__Group_4__2__Impl_in_rule__Interface__Group_4__211792);
            rule__Interface__Group_4__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_4__2"


    // $ANTLR start "rule__Interface__Group_4__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5825:1: rule__Interface__Group_4__2__Impl : ( '}' ) ;
    public final void rule__Interface__Group_4__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5829:1: ( ( '}' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5830:1: ( '}' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5830:1: ( '}' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5831:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getRightCurlyBracketKeyword_4_2()); 
            }
            match(input,50,FOLLOW_50_in_rule__Interface__Group_4__2__Impl11820); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getRightCurlyBracketKeyword_4_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group_4__2__Impl"


    // $ANTLR start "rule__Operation__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5850:1: rule__Operation__Group__0 : rule__Operation__Group__0__Impl rule__Operation__Group__1 ;
    public final void rule__Operation__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5854:1: ( rule__Operation__Group__0__Impl rule__Operation__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5855:2: rule__Operation__Group__0__Impl rule__Operation__Group__1
            {
            pushFollow(FOLLOW_rule__Operation__Group__0__Impl_in_rule__Operation__Group__011857);
            rule__Operation__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group__1_in_rule__Operation__Group__011860);
            rule__Operation__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__0"


    // $ANTLR start "rule__Operation__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5862:1: rule__Operation__Group__0__Impl : ( ( rule__Operation__Group_0__0 )? ) ;
    public final void rule__Operation__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5866:1: ( ( ( rule__Operation__Group_0__0 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5867:1: ( ( rule__Operation__Group_0__0 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5867:1: ( ( rule__Operation__Group_0__0 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5868:1: ( rule__Operation__Group_0__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getGroup_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5869:1: ( rule__Operation__Group_0__0 )?
            int alt41=2;
            int LA41_0 = input.LA(1);

            if ( (LA41_0==51) ) {
                alt41=1;
            }
            switch (alt41) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5869:2: rule__Operation__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__Operation__Group_0__0_in_rule__Operation__Group__0__Impl11887);
                    rule__Operation__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getGroup_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__0__Impl"


    // $ANTLR start "rule__Operation__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5879:1: rule__Operation__Group__1 : rule__Operation__Group__1__Impl rule__Operation__Group__2 ;
    public final void rule__Operation__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5883:1: ( rule__Operation__Group__1__Impl rule__Operation__Group__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5884:2: rule__Operation__Group__1__Impl rule__Operation__Group__2
            {
            pushFollow(FOLLOW_rule__Operation__Group__1__Impl_in_rule__Operation__Group__111918);
            rule__Operation__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group__2_in_rule__Operation__Group__111921);
            rule__Operation__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__1"


    // $ANTLR start "rule__Operation__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5891:1: rule__Operation__Group__1__Impl : ( ( rule__Operation__StringifierAssignment_1 )? ) ;
    public final void rule__Operation__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5895:1: ( ( ( rule__Operation__StringifierAssignment_1 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5896:1: ( ( rule__Operation__StringifierAssignment_1 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5896:1: ( ( rule__Operation__StringifierAssignment_1 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5897:1: ( rule__Operation__StringifierAssignment_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getStringifierAssignment_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5898:1: ( rule__Operation__StringifierAssignment_1 )?
            int alt42=2;
            int LA42_0 = input.LA(1);

            if ( (LA42_0==76) ) {
                alt42=1;
            }
            switch (alt42) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5898:2: rule__Operation__StringifierAssignment_1
                    {
                    pushFollow(FOLLOW_rule__Operation__StringifierAssignment_1_in_rule__Operation__Group__1__Impl11948);
                    rule__Operation__StringifierAssignment_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getStringifierAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__1__Impl"


    // $ANTLR start "rule__Operation__Group__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5908:1: rule__Operation__Group__2 : rule__Operation__Group__2__Impl rule__Operation__Group__3 ;
    public final void rule__Operation__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5912:1: ( rule__Operation__Group__2__Impl rule__Operation__Group__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5913:2: rule__Operation__Group__2__Impl rule__Operation__Group__3
            {
            pushFollow(FOLLOW_rule__Operation__Group__2__Impl_in_rule__Operation__Group__211979);
            rule__Operation__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group__3_in_rule__Operation__Group__211982);
            rule__Operation__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__2"


    // $ANTLR start "rule__Operation__Group__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5920:1: rule__Operation__Group__2__Impl : ( ( rule__Operation__OmittableAssignment_2 )? ) ;
    public final void rule__Operation__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5924:1: ( ( ( rule__Operation__OmittableAssignment_2 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5925:1: ( ( rule__Operation__OmittableAssignment_2 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5925:1: ( ( rule__Operation__OmittableAssignment_2 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5926:1: ( rule__Operation__OmittableAssignment_2 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getOmittableAssignment_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5927:1: ( rule__Operation__OmittableAssignment_2 )?
            int alt43=2;
            int LA43_0 = input.LA(1);

            if ( (LA43_0==77) ) {
                alt43=1;
            }
            switch (alt43) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5927:2: rule__Operation__OmittableAssignment_2
                    {
                    pushFollow(FOLLOW_rule__Operation__OmittableAssignment_2_in_rule__Operation__Group__2__Impl12009);
                    rule__Operation__OmittableAssignment_2();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getOmittableAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__2__Impl"


    // $ANTLR start "rule__Operation__Group__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5937:1: rule__Operation__Group__3 : rule__Operation__Group__3__Impl rule__Operation__Group__4 ;
    public final void rule__Operation__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5941:1: ( rule__Operation__Group__3__Impl rule__Operation__Group__4 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5942:2: rule__Operation__Group__3__Impl rule__Operation__Group__4
            {
            pushFollow(FOLLOW_rule__Operation__Group__3__Impl_in_rule__Operation__Group__312040);
            rule__Operation__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group__4_in_rule__Operation__Group__312043);
            rule__Operation__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__3"


    // $ANTLR start "rule__Operation__Group__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5949:1: rule__Operation__Group__3__Impl : ( ( rule__Operation__SpecialsAssignment_3 )* ) ;
    public final void rule__Operation__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5953:1: ( ( ( rule__Operation__SpecialsAssignment_3 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5954:1: ( ( rule__Operation__SpecialsAssignment_3 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5954:1: ( ( rule__Operation__SpecialsAssignment_3 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5955:1: ( rule__Operation__SpecialsAssignment_3 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getSpecialsAssignment_3()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5956:1: ( rule__Operation__SpecialsAssignment_3 )*
            loop44:
            do {
                int alt44=2;
                int LA44_0 = input.LA(1);

                if ( ((LA44_0>=58 && LA44_0<=62)) ) {
                    alt44=1;
                }


                switch (alt44) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5956:2: rule__Operation__SpecialsAssignment_3
            	    {
            	    pushFollow(FOLLOW_rule__Operation__SpecialsAssignment_3_in_rule__Operation__Group__3__Impl12070);
            	    rule__Operation__SpecialsAssignment_3();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop44;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getSpecialsAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__3__Impl"


    // $ANTLR start "rule__Operation__Group__4"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5966:1: rule__Operation__Group__4 : rule__Operation__Group__4__Impl rule__Operation__Group__5 ;
    public final void rule__Operation__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5970:1: ( rule__Operation__Group__4__Impl rule__Operation__Group__5 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5971:2: rule__Operation__Group__4__Impl rule__Operation__Group__5
            {
            pushFollow(FOLLOW_rule__Operation__Group__4__Impl_in_rule__Operation__Group__412101);
            rule__Operation__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group__5_in_rule__Operation__Group__412104);
            rule__Operation__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__4"


    // $ANTLR start "rule__Operation__Group__4__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5978:1: rule__Operation__Group__4__Impl : ( ( rule__Operation__ReturnAssignment_4 ) ) ;
    public final void rule__Operation__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5982:1: ( ( ( rule__Operation__ReturnAssignment_4 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5983:1: ( ( rule__Operation__ReturnAssignment_4 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5983:1: ( ( rule__Operation__ReturnAssignment_4 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5984:1: ( rule__Operation__ReturnAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getReturnAssignment_4()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5985:1: ( rule__Operation__ReturnAssignment_4 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5985:2: rule__Operation__ReturnAssignment_4
            {
            pushFollow(FOLLOW_rule__Operation__ReturnAssignment_4_in_rule__Operation__Group__4__Impl12131);
            rule__Operation__ReturnAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getReturnAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__4__Impl"


    // $ANTLR start "rule__Operation__Group__5"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5995:1: rule__Operation__Group__5 : rule__Operation__Group__5__Impl rule__Operation__Group__6 ;
    public final void rule__Operation__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:5999:1: ( rule__Operation__Group__5__Impl rule__Operation__Group__6 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6000:2: rule__Operation__Group__5__Impl rule__Operation__Group__6
            {
            pushFollow(FOLLOW_rule__Operation__Group__5__Impl_in_rule__Operation__Group__512161);
            rule__Operation__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group__6_in_rule__Operation__Group__512164);
            rule__Operation__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__5"


    // $ANTLR start "rule__Operation__Group__5__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6007:1: rule__Operation__Group__5__Impl : ( ( rule__Operation__NameAssignment_5 )? ) ;
    public final void rule__Operation__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6011:1: ( ( ( rule__Operation__NameAssignment_5 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6012:1: ( ( rule__Operation__NameAssignment_5 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6012:1: ( ( rule__Operation__NameAssignment_5 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6013:1: ( rule__Operation__NameAssignment_5 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getNameAssignment_5()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6014:1: ( rule__Operation__NameAssignment_5 )?
            int alt45=2;
            int LA45_0 = input.LA(1);

            if ( (LA45_0==RULE_ID) ) {
                alt45=1;
            }
            switch (alt45) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6014:2: rule__Operation__NameAssignment_5
                    {
                    pushFollow(FOLLOW_rule__Operation__NameAssignment_5_in_rule__Operation__Group__5__Impl12191);
                    rule__Operation__NameAssignment_5();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getNameAssignment_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__5__Impl"


    // $ANTLR start "rule__Operation__Group__6"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6024:1: rule__Operation__Group__6 : rule__Operation__Group__6__Impl rule__Operation__Group__7 ;
    public final void rule__Operation__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6028:1: ( rule__Operation__Group__6__Impl rule__Operation__Group__7 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6029:2: rule__Operation__Group__6__Impl rule__Operation__Group__7
            {
            pushFollow(FOLLOW_rule__Operation__Group__6__Impl_in_rule__Operation__Group__612222);
            rule__Operation__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group__7_in_rule__Operation__Group__612225);
            rule__Operation__Group__7();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__6"


    // $ANTLR start "rule__Operation__Group__6__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6036:1: rule__Operation__Group__6__Impl : ( '(' ) ;
    public final void rule__Operation__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6040:1: ( ( '(' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6041:1: ( '(' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6041:1: ( '(' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6042:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getLeftParenthesisKeyword_6()); 
            }
            match(input,31,FOLLOW_31_in_rule__Operation__Group__6__Impl12253); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getLeftParenthesisKeyword_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__6__Impl"


    // $ANTLR start "rule__Operation__Group__7"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6055:1: rule__Operation__Group__7 : rule__Operation__Group__7__Impl rule__Operation__Group__8 ;
    public final void rule__Operation__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6059:1: ( rule__Operation__Group__7__Impl rule__Operation__Group__8 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6060:2: rule__Operation__Group__7__Impl rule__Operation__Group__8
            {
            pushFollow(FOLLOW_rule__Operation__Group__7__Impl_in_rule__Operation__Group__712284);
            rule__Operation__Group__7__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group__8_in_rule__Operation__Group__712287);
            rule__Operation__Group__8();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__7"


    // $ANTLR start "rule__Operation__Group__7__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6067:1: rule__Operation__Group__7__Impl : ( ( rule__Operation__Group_7__0 )? ) ;
    public final void rule__Operation__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6071:1: ( ( ( rule__Operation__Group_7__0 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6072:1: ( ( rule__Operation__Group_7__0 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6072:1: ( ( rule__Operation__Group_7__0 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6073:1: ( rule__Operation__Group_7__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getGroup_7()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6074:1: ( rule__Operation__Group_7__0 )?
            int alt46=2;
            int LA46_0 = input.LA(1);

            if ( (LA46_0==RULE_ID||(LA46_0>=12 && LA46_0<=23)||LA46_0==27||LA46_0==51||LA46_0==71||(LA46_0>=78 && LA46_0<=79)) ) {
                alt46=1;
            }
            switch (alt46) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6074:2: rule__Operation__Group_7__0
                    {
                    pushFollow(FOLLOW_rule__Operation__Group_7__0_in_rule__Operation__Group__7__Impl12314);
                    rule__Operation__Group_7__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getGroup_7()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__7__Impl"


    // $ANTLR start "rule__Operation__Group__8"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6084:1: rule__Operation__Group__8 : rule__Operation__Group__8__Impl rule__Operation__Group__9 ;
    public final void rule__Operation__Group__8() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6088:1: ( rule__Operation__Group__8__Impl rule__Operation__Group__9 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6089:2: rule__Operation__Group__8__Impl rule__Operation__Group__9
            {
            pushFollow(FOLLOW_rule__Operation__Group__8__Impl_in_rule__Operation__Group__812345);
            rule__Operation__Group__8__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group__9_in_rule__Operation__Group__812348);
            rule__Operation__Group__9();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__8"


    // $ANTLR start "rule__Operation__Group__8__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6096:1: rule__Operation__Group__8__Impl : ( ')' ) ;
    public final void rule__Operation__Group__8__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6100:1: ( ( ')' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6101:1: ( ')' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6101:1: ( ')' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6102:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getRightParenthesisKeyword_8()); 
            }
            match(input,32,FOLLOW_32_in_rule__Operation__Group__8__Impl12376); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getRightParenthesisKeyword_8()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__8__Impl"


    // $ANTLR start "rule__Operation__Group__9"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6115:1: rule__Operation__Group__9 : rule__Operation__Group__9__Impl rule__Operation__Group__10 ;
    public final void rule__Operation__Group__9() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6119:1: ( rule__Operation__Group__9__Impl rule__Operation__Group__10 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6120:2: rule__Operation__Group__9__Impl rule__Operation__Group__10
            {
            pushFollow(FOLLOW_rule__Operation__Group__9__Impl_in_rule__Operation__Group__912407);
            rule__Operation__Group__9__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group__10_in_rule__Operation__Group__912410);
            rule__Operation__Group__10();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__9"


    // $ANTLR start "rule__Operation__Group__9__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6127:1: rule__Operation__Group__9__Impl : ( ( rule__Operation__Group_9__0 )? ) ;
    public final void rule__Operation__Group__9__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6131:1: ( ( ( rule__Operation__Group_9__0 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6132:1: ( ( rule__Operation__Group_9__0 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6132:1: ( ( rule__Operation__Group_9__0 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6133:1: ( rule__Operation__Group_9__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getGroup_9()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6134:1: ( rule__Operation__Group_9__0 )?
            int alt47=2;
            int LA47_0 = input.LA(1);

            if ( (LA47_0==57) ) {
                alt47=1;
            }
            switch (alt47) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6134:2: rule__Operation__Group_9__0
                    {
                    pushFollow(FOLLOW_rule__Operation__Group_9__0_in_rule__Operation__Group__9__Impl12437);
                    rule__Operation__Group_9__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getGroup_9()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__9__Impl"


    // $ANTLR start "rule__Operation__Group__10"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6144:1: rule__Operation__Group__10 : rule__Operation__Group__10__Impl ;
    public final void rule__Operation__Group__10() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6148:1: ( rule__Operation__Group__10__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6149:2: rule__Operation__Group__10__Impl
            {
            pushFollow(FOLLOW_rule__Operation__Group__10__Impl_in_rule__Operation__Group__1012468);
            rule__Operation__Group__10__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__10"


    // $ANTLR start "rule__Operation__Group__10__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6155:1: rule__Operation__Group__10__Impl : ( ';' ) ;
    public final void rule__Operation__Group__10__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6159:1: ( ( ';' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6160:1: ( ';' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6160:1: ( ';' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6161:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getSemicolonKeyword_10()); 
            }
            match(input,25,FOLLOW_25_in_rule__Operation__Group__10__Impl12496); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getSemicolonKeyword_10()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group__10__Impl"


    // $ANTLR start "rule__Operation__Group_0__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6196:1: rule__Operation__Group_0__0 : rule__Operation__Group_0__0__Impl rule__Operation__Group_0__1 ;
    public final void rule__Operation__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6200:1: ( rule__Operation__Group_0__0__Impl rule__Operation__Group_0__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6201:2: rule__Operation__Group_0__0__Impl rule__Operation__Group_0__1
            {
            pushFollow(FOLLOW_rule__Operation__Group_0__0__Impl_in_rule__Operation__Group_0__012549);
            rule__Operation__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group_0__1_in_rule__Operation__Group_0__012552);
            rule__Operation__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_0__0"


    // $ANTLR start "rule__Operation__Group_0__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6208:1: rule__Operation__Group_0__0__Impl : ( '[' ) ;
    public final void rule__Operation__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6212:1: ( ( '[' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6213:1: ( '[' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6213:1: ( '[' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6214:1: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getLeftSquareBracketKeyword_0_0()); 
            }
            match(input,51,FOLLOW_51_in_rule__Operation__Group_0__0__Impl12580); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getLeftSquareBracketKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_0__0__Impl"


    // $ANTLR start "rule__Operation__Group_0__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6227:1: rule__Operation__Group_0__1 : rule__Operation__Group_0__1__Impl rule__Operation__Group_0__2 ;
    public final void rule__Operation__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6231:1: ( rule__Operation__Group_0__1__Impl rule__Operation__Group_0__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6232:2: rule__Operation__Group_0__1__Impl rule__Operation__Group_0__2
            {
            pushFollow(FOLLOW_rule__Operation__Group_0__1__Impl_in_rule__Operation__Group_0__112611);
            rule__Operation__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group_0__2_in_rule__Operation__Group_0__112614);
            rule__Operation__Group_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_0__1"


    // $ANTLR start "rule__Operation__Group_0__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6239:1: rule__Operation__Group_0__1__Impl : ( ( rule__Operation__ExtendedAttributesAssignment_0_1 ) ) ;
    public final void rule__Operation__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6243:1: ( ( ( rule__Operation__ExtendedAttributesAssignment_0_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6244:1: ( ( rule__Operation__ExtendedAttributesAssignment_0_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6244:1: ( ( rule__Operation__ExtendedAttributesAssignment_0_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6245:1: ( rule__Operation__ExtendedAttributesAssignment_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getExtendedAttributesAssignment_0_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6246:1: ( rule__Operation__ExtendedAttributesAssignment_0_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6246:2: rule__Operation__ExtendedAttributesAssignment_0_1
            {
            pushFollow(FOLLOW_rule__Operation__ExtendedAttributesAssignment_0_1_in_rule__Operation__Group_0__1__Impl12641);
            rule__Operation__ExtendedAttributesAssignment_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getExtendedAttributesAssignment_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_0__1__Impl"


    // $ANTLR start "rule__Operation__Group_0__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6256:1: rule__Operation__Group_0__2 : rule__Operation__Group_0__2__Impl rule__Operation__Group_0__3 ;
    public final void rule__Operation__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6260:1: ( rule__Operation__Group_0__2__Impl rule__Operation__Group_0__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6261:2: rule__Operation__Group_0__2__Impl rule__Operation__Group_0__3
            {
            pushFollow(FOLLOW_rule__Operation__Group_0__2__Impl_in_rule__Operation__Group_0__212671);
            rule__Operation__Group_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group_0__3_in_rule__Operation__Group_0__212674);
            rule__Operation__Group_0__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_0__2"


    // $ANTLR start "rule__Operation__Group_0__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6268:1: rule__Operation__Group_0__2__Impl : ( ( rule__Operation__Group_0_2__0 )* ) ;
    public final void rule__Operation__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6272:1: ( ( ( rule__Operation__Group_0_2__0 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6273:1: ( ( rule__Operation__Group_0_2__0 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6273:1: ( ( rule__Operation__Group_0_2__0 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6274:1: ( rule__Operation__Group_0_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getGroup_0_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6275:1: ( rule__Operation__Group_0_2__0 )*
            loop48:
            do {
                int alt48=2;
                int LA48_0 = input.LA(1);

                if ( (LA48_0==33) ) {
                    alt48=1;
                }


                switch (alt48) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6275:2: rule__Operation__Group_0_2__0
            	    {
            	    pushFollow(FOLLOW_rule__Operation__Group_0_2__0_in_rule__Operation__Group_0__2__Impl12701);
            	    rule__Operation__Group_0_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop48;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getGroup_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_0__2__Impl"


    // $ANTLR start "rule__Operation__Group_0__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6285:1: rule__Operation__Group_0__3 : rule__Operation__Group_0__3__Impl ;
    public final void rule__Operation__Group_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6289:1: ( rule__Operation__Group_0__3__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6290:2: rule__Operation__Group_0__3__Impl
            {
            pushFollow(FOLLOW_rule__Operation__Group_0__3__Impl_in_rule__Operation__Group_0__312732);
            rule__Operation__Group_0__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_0__3"


    // $ANTLR start "rule__Operation__Group_0__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6296:1: rule__Operation__Group_0__3__Impl : ( ']' ) ;
    public final void rule__Operation__Group_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6300:1: ( ( ']' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6301:1: ( ']' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6301:1: ( ']' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6302:1: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getRightSquareBracketKeyword_0_3()); 
            }
            match(input,52,FOLLOW_52_in_rule__Operation__Group_0__3__Impl12760); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getRightSquareBracketKeyword_0_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_0__3__Impl"


    // $ANTLR start "rule__Operation__Group_0_2__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6323:1: rule__Operation__Group_0_2__0 : rule__Operation__Group_0_2__0__Impl rule__Operation__Group_0_2__1 ;
    public final void rule__Operation__Group_0_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6327:1: ( rule__Operation__Group_0_2__0__Impl rule__Operation__Group_0_2__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6328:2: rule__Operation__Group_0_2__0__Impl rule__Operation__Group_0_2__1
            {
            pushFollow(FOLLOW_rule__Operation__Group_0_2__0__Impl_in_rule__Operation__Group_0_2__012799);
            rule__Operation__Group_0_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group_0_2__1_in_rule__Operation__Group_0_2__012802);
            rule__Operation__Group_0_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_0_2__0"


    // $ANTLR start "rule__Operation__Group_0_2__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6335:1: rule__Operation__Group_0_2__0__Impl : ( ',' ) ;
    public final void rule__Operation__Group_0_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6339:1: ( ( ',' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6340:1: ( ',' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6340:1: ( ',' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6341:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getCommaKeyword_0_2_0()); 
            }
            match(input,33,FOLLOW_33_in_rule__Operation__Group_0_2__0__Impl12830); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getCommaKeyword_0_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_0_2__0__Impl"


    // $ANTLR start "rule__Operation__Group_0_2__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6354:1: rule__Operation__Group_0_2__1 : rule__Operation__Group_0_2__1__Impl ;
    public final void rule__Operation__Group_0_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6358:1: ( rule__Operation__Group_0_2__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6359:2: rule__Operation__Group_0_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Operation__Group_0_2__1__Impl_in_rule__Operation__Group_0_2__112861);
            rule__Operation__Group_0_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_0_2__1"


    // $ANTLR start "rule__Operation__Group_0_2__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6365:1: rule__Operation__Group_0_2__1__Impl : ( ( rule__Operation__ExtendedAttributesAssignment_0_2_1 ) ) ;
    public final void rule__Operation__Group_0_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6369:1: ( ( ( rule__Operation__ExtendedAttributesAssignment_0_2_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6370:1: ( ( rule__Operation__ExtendedAttributesAssignment_0_2_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6370:1: ( ( rule__Operation__ExtendedAttributesAssignment_0_2_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6371:1: ( rule__Operation__ExtendedAttributesAssignment_0_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getExtendedAttributesAssignment_0_2_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6372:1: ( rule__Operation__ExtendedAttributesAssignment_0_2_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6372:2: rule__Operation__ExtendedAttributesAssignment_0_2_1
            {
            pushFollow(FOLLOW_rule__Operation__ExtendedAttributesAssignment_0_2_1_in_rule__Operation__Group_0_2__1__Impl12888);
            rule__Operation__ExtendedAttributesAssignment_0_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getExtendedAttributesAssignment_0_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_0_2__1__Impl"


    // $ANTLR start "rule__Operation__Group_7__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6386:1: rule__Operation__Group_7__0 : rule__Operation__Group_7__0__Impl rule__Operation__Group_7__1 ;
    public final void rule__Operation__Group_7__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6390:1: ( rule__Operation__Group_7__0__Impl rule__Operation__Group_7__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6391:2: rule__Operation__Group_7__0__Impl rule__Operation__Group_7__1
            {
            pushFollow(FOLLOW_rule__Operation__Group_7__0__Impl_in_rule__Operation__Group_7__012922);
            rule__Operation__Group_7__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group_7__1_in_rule__Operation__Group_7__012925);
            rule__Operation__Group_7__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_7__0"


    // $ANTLR start "rule__Operation__Group_7__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6398:1: rule__Operation__Group_7__0__Impl : ( ( rule__Operation__ArgumentsAssignment_7_0 ) ) ;
    public final void rule__Operation__Group_7__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6402:1: ( ( ( rule__Operation__ArgumentsAssignment_7_0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6403:1: ( ( rule__Operation__ArgumentsAssignment_7_0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6403:1: ( ( rule__Operation__ArgumentsAssignment_7_0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6404:1: ( rule__Operation__ArgumentsAssignment_7_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getArgumentsAssignment_7_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6405:1: ( rule__Operation__ArgumentsAssignment_7_0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6405:2: rule__Operation__ArgumentsAssignment_7_0
            {
            pushFollow(FOLLOW_rule__Operation__ArgumentsAssignment_7_0_in_rule__Operation__Group_7__0__Impl12952);
            rule__Operation__ArgumentsAssignment_7_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getArgumentsAssignment_7_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_7__0__Impl"


    // $ANTLR start "rule__Operation__Group_7__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6415:1: rule__Operation__Group_7__1 : rule__Operation__Group_7__1__Impl ;
    public final void rule__Operation__Group_7__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6419:1: ( rule__Operation__Group_7__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6420:2: rule__Operation__Group_7__1__Impl
            {
            pushFollow(FOLLOW_rule__Operation__Group_7__1__Impl_in_rule__Operation__Group_7__112982);
            rule__Operation__Group_7__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_7__1"


    // $ANTLR start "rule__Operation__Group_7__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6426:1: rule__Operation__Group_7__1__Impl : ( ( rule__Operation__Group_7_1__0 )* ) ;
    public final void rule__Operation__Group_7__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6430:1: ( ( ( rule__Operation__Group_7_1__0 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6431:1: ( ( rule__Operation__Group_7_1__0 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6431:1: ( ( rule__Operation__Group_7_1__0 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6432:1: ( rule__Operation__Group_7_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getGroup_7_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6433:1: ( rule__Operation__Group_7_1__0 )*
            loop49:
            do {
                int alt49=2;
                int LA49_0 = input.LA(1);

                if ( (LA49_0==33) ) {
                    alt49=1;
                }


                switch (alt49) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6433:2: rule__Operation__Group_7_1__0
            	    {
            	    pushFollow(FOLLOW_rule__Operation__Group_7_1__0_in_rule__Operation__Group_7__1__Impl13009);
            	    rule__Operation__Group_7_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop49;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getGroup_7_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_7__1__Impl"


    // $ANTLR start "rule__Operation__Group_7_1__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6447:1: rule__Operation__Group_7_1__0 : rule__Operation__Group_7_1__0__Impl rule__Operation__Group_7_1__1 ;
    public final void rule__Operation__Group_7_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6451:1: ( rule__Operation__Group_7_1__0__Impl rule__Operation__Group_7_1__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6452:2: rule__Operation__Group_7_1__0__Impl rule__Operation__Group_7_1__1
            {
            pushFollow(FOLLOW_rule__Operation__Group_7_1__0__Impl_in_rule__Operation__Group_7_1__013044);
            rule__Operation__Group_7_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group_7_1__1_in_rule__Operation__Group_7_1__013047);
            rule__Operation__Group_7_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_7_1__0"


    // $ANTLR start "rule__Operation__Group_7_1__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6459:1: rule__Operation__Group_7_1__0__Impl : ( ',' ) ;
    public final void rule__Operation__Group_7_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6463:1: ( ( ',' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6464:1: ( ',' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6464:1: ( ',' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6465:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getCommaKeyword_7_1_0()); 
            }
            match(input,33,FOLLOW_33_in_rule__Operation__Group_7_1__0__Impl13075); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getCommaKeyword_7_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_7_1__0__Impl"


    // $ANTLR start "rule__Operation__Group_7_1__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6478:1: rule__Operation__Group_7_1__1 : rule__Operation__Group_7_1__1__Impl ;
    public final void rule__Operation__Group_7_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6482:1: ( rule__Operation__Group_7_1__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6483:2: rule__Operation__Group_7_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Operation__Group_7_1__1__Impl_in_rule__Operation__Group_7_1__113106);
            rule__Operation__Group_7_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_7_1__1"


    // $ANTLR start "rule__Operation__Group_7_1__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6489:1: rule__Operation__Group_7_1__1__Impl : ( ( rule__Operation__ArgumentsAssignment_7_1_1 ) ) ;
    public final void rule__Operation__Group_7_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6493:1: ( ( ( rule__Operation__ArgumentsAssignment_7_1_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6494:1: ( ( rule__Operation__ArgumentsAssignment_7_1_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6494:1: ( ( rule__Operation__ArgumentsAssignment_7_1_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6495:1: ( rule__Operation__ArgumentsAssignment_7_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getArgumentsAssignment_7_1_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6496:1: ( rule__Operation__ArgumentsAssignment_7_1_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6496:2: rule__Operation__ArgumentsAssignment_7_1_1
            {
            pushFollow(FOLLOW_rule__Operation__ArgumentsAssignment_7_1_1_in_rule__Operation__Group_7_1__1__Impl13133);
            rule__Operation__ArgumentsAssignment_7_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getArgumentsAssignment_7_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_7_1__1__Impl"


    // $ANTLR start "rule__Operation__Group_9__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6510:1: rule__Operation__Group_9__0 : rule__Operation__Group_9__0__Impl rule__Operation__Group_9__1 ;
    public final void rule__Operation__Group_9__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6514:1: ( rule__Operation__Group_9__0__Impl rule__Operation__Group_9__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6515:2: rule__Operation__Group_9__0__Impl rule__Operation__Group_9__1
            {
            pushFollow(FOLLOW_rule__Operation__Group_9__0__Impl_in_rule__Operation__Group_9__013167);
            rule__Operation__Group_9__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group_9__1_in_rule__Operation__Group_9__013170);
            rule__Operation__Group_9__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_9__0"


    // $ANTLR start "rule__Operation__Group_9__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6522:1: rule__Operation__Group_9__0__Impl : ( 'raises' ) ;
    public final void rule__Operation__Group_9__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6526:1: ( ( 'raises' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6527:1: ( 'raises' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6527:1: ( 'raises' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6528:1: 'raises'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getRaisesKeyword_9_0()); 
            }
            match(input,57,FOLLOW_57_in_rule__Operation__Group_9__0__Impl13198); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getRaisesKeyword_9_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_9__0__Impl"


    // $ANTLR start "rule__Operation__Group_9__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6541:1: rule__Operation__Group_9__1 : rule__Operation__Group_9__1__Impl rule__Operation__Group_9__2 ;
    public final void rule__Operation__Group_9__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6545:1: ( rule__Operation__Group_9__1__Impl rule__Operation__Group_9__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6546:2: rule__Operation__Group_9__1__Impl rule__Operation__Group_9__2
            {
            pushFollow(FOLLOW_rule__Operation__Group_9__1__Impl_in_rule__Operation__Group_9__113229);
            rule__Operation__Group_9__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group_9__2_in_rule__Operation__Group_9__113232);
            rule__Operation__Group_9__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_9__1"


    // $ANTLR start "rule__Operation__Group_9__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6553:1: rule__Operation__Group_9__1__Impl : ( '(' ) ;
    public final void rule__Operation__Group_9__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6557:1: ( ( '(' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6558:1: ( '(' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6558:1: ( '(' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6559:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getLeftParenthesisKeyword_9_1()); 
            }
            match(input,31,FOLLOW_31_in_rule__Operation__Group_9__1__Impl13260); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getLeftParenthesisKeyword_9_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_9__1__Impl"


    // $ANTLR start "rule__Operation__Group_9__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6572:1: rule__Operation__Group_9__2 : rule__Operation__Group_9__2__Impl rule__Operation__Group_9__3 ;
    public final void rule__Operation__Group_9__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6576:1: ( rule__Operation__Group_9__2__Impl rule__Operation__Group_9__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6577:2: rule__Operation__Group_9__2__Impl rule__Operation__Group_9__3
            {
            pushFollow(FOLLOW_rule__Operation__Group_9__2__Impl_in_rule__Operation__Group_9__213291);
            rule__Operation__Group_9__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group_9__3_in_rule__Operation__Group_9__213294);
            rule__Operation__Group_9__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_9__2"


    // $ANTLR start "rule__Operation__Group_9__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6584:1: rule__Operation__Group_9__2__Impl : ( ( rule__Operation__RaisesAssignment_9_2 ) ) ;
    public final void rule__Operation__Group_9__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6588:1: ( ( ( rule__Operation__RaisesAssignment_9_2 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6589:1: ( ( rule__Operation__RaisesAssignment_9_2 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6589:1: ( ( rule__Operation__RaisesAssignment_9_2 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6590:1: ( rule__Operation__RaisesAssignment_9_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getRaisesAssignment_9_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6591:1: ( rule__Operation__RaisesAssignment_9_2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6591:2: rule__Operation__RaisesAssignment_9_2
            {
            pushFollow(FOLLOW_rule__Operation__RaisesAssignment_9_2_in_rule__Operation__Group_9__2__Impl13321);
            rule__Operation__RaisesAssignment_9_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getRaisesAssignment_9_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_9__2__Impl"


    // $ANTLR start "rule__Operation__Group_9__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6601:1: rule__Operation__Group_9__3 : rule__Operation__Group_9__3__Impl rule__Operation__Group_9__4 ;
    public final void rule__Operation__Group_9__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6605:1: ( rule__Operation__Group_9__3__Impl rule__Operation__Group_9__4 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6606:2: rule__Operation__Group_9__3__Impl rule__Operation__Group_9__4
            {
            pushFollow(FOLLOW_rule__Operation__Group_9__3__Impl_in_rule__Operation__Group_9__313351);
            rule__Operation__Group_9__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group_9__4_in_rule__Operation__Group_9__313354);
            rule__Operation__Group_9__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_9__3"


    // $ANTLR start "rule__Operation__Group_9__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6613:1: rule__Operation__Group_9__3__Impl : ( ( rule__Operation__Group_9_3__0 )* ) ;
    public final void rule__Operation__Group_9__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6617:1: ( ( ( rule__Operation__Group_9_3__0 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6618:1: ( ( rule__Operation__Group_9_3__0 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6618:1: ( ( rule__Operation__Group_9_3__0 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6619:1: ( rule__Operation__Group_9_3__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getGroup_9_3()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6620:1: ( rule__Operation__Group_9_3__0 )*
            loop50:
            do {
                int alt50=2;
                int LA50_0 = input.LA(1);

                if ( (LA50_0==33) ) {
                    alt50=1;
                }


                switch (alt50) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6620:2: rule__Operation__Group_9_3__0
            	    {
            	    pushFollow(FOLLOW_rule__Operation__Group_9_3__0_in_rule__Operation__Group_9__3__Impl13381);
            	    rule__Operation__Group_9_3__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop50;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getGroup_9_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_9__3__Impl"


    // $ANTLR start "rule__Operation__Group_9__4"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6630:1: rule__Operation__Group_9__4 : rule__Operation__Group_9__4__Impl ;
    public final void rule__Operation__Group_9__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6634:1: ( rule__Operation__Group_9__4__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6635:2: rule__Operation__Group_9__4__Impl
            {
            pushFollow(FOLLOW_rule__Operation__Group_9__4__Impl_in_rule__Operation__Group_9__413412);
            rule__Operation__Group_9__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_9__4"


    // $ANTLR start "rule__Operation__Group_9__4__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6641:1: rule__Operation__Group_9__4__Impl : ( ')' ) ;
    public final void rule__Operation__Group_9__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6645:1: ( ( ')' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6646:1: ( ')' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6646:1: ( ')' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6647:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getRightParenthesisKeyword_9_4()); 
            }
            match(input,32,FOLLOW_32_in_rule__Operation__Group_9__4__Impl13440); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getRightParenthesisKeyword_9_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_9__4__Impl"


    // $ANTLR start "rule__Operation__Group_9_3__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6670:1: rule__Operation__Group_9_3__0 : rule__Operation__Group_9_3__0__Impl rule__Operation__Group_9_3__1 ;
    public final void rule__Operation__Group_9_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6674:1: ( rule__Operation__Group_9_3__0__Impl rule__Operation__Group_9_3__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6675:2: rule__Operation__Group_9_3__0__Impl rule__Operation__Group_9_3__1
            {
            pushFollow(FOLLOW_rule__Operation__Group_9_3__0__Impl_in_rule__Operation__Group_9_3__013481);
            rule__Operation__Group_9_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Operation__Group_9_3__1_in_rule__Operation__Group_9_3__013484);
            rule__Operation__Group_9_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_9_3__0"


    // $ANTLR start "rule__Operation__Group_9_3__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6682:1: rule__Operation__Group_9_3__0__Impl : ( ',' ) ;
    public final void rule__Operation__Group_9_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6686:1: ( ( ',' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6687:1: ( ',' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6687:1: ( ',' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6688:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getCommaKeyword_9_3_0()); 
            }
            match(input,33,FOLLOW_33_in_rule__Operation__Group_9_3__0__Impl13512); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getCommaKeyword_9_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_9_3__0__Impl"


    // $ANTLR start "rule__Operation__Group_9_3__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6701:1: rule__Operation__Group_9_3__1 : rule__Operation__Group_9_3__1__Impl ;
    public final void rule__Operation__Group_9_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6705:1: ( rule__Operation__Group_9_3__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6706:2: rule__Operation__Group_9_3__1__Impl
            {
            pushFollow(FOLLOW_rule__Operation__Group_9_3__1__Impl_in_rule__Operation__Group_9_3__113543);
            rule__Operation__Group_9_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_9_3__1"


    // $ANTLR start "rule__Operation__Group_9_3__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6712:1: rule__Operation__Group_9_3__1__Impl : ( ( rule__Operation__RaisesAssignment_9_3_1 ) ) ;
    public final void rule__Operation__Group_9_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6716:1: ( ( ( rule__Operation__RaisesAssignment_9_3_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6717:1: ( ( rule__Operation__RaisesAssignment_9_3_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6717:1: ( ( rule__Operation__RaisesAssignment_9_3_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6718:1: ( rule__Operation__RaisesAssignment_9_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getRaisesAssignment_9_3_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6719:1: ( rule__Operation__RaisesAssignment_9_3_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6719:2: rule__Operation__RaisesAssignment_9_3_1
            {
            pushFollow(FOLLOW_rule__Operation__RaisesAssignment_9_3_1_in_rule__Operation__Group_9_3__1__Impl13570);
            rule__Operation__RaisesAssignment_9_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getRaisesAssignment_9_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__Group_9_3__1__Impl"


    // $ANTLR start "rule__OperationSpecial__Group_0__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6733:1: rule__OperationSpecial__Group_0__0 : rule__OperationSpecial__Group_0__0__Impl rule__OperationSpecial__Group_0__1 ;
    public final void rule__OperationSpecial__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6737:1: ( rule__OperationSpecial__Group_0__0__Impl rule__OperationSpecial__Group_0__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6738:2: rule__OperationSpecial__Group_0__0__Impl rule__OperationSpecial__Group_0__1
            {
            pushFollow(FOLLOW_rule__OperationSpecial__Group_0__0__Impl_in_rule__OperationSpecial__Group_0__013604);
            rule__OperationSpecial__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__OperationSpecial__Group_0__1_in_rule__OperationSpecial__Group_0__013607);
            rule__OperationSpecial__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_0__0"


    // $ANTLR start "rule__OperationSpecial__Group_0__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6745:1: rule__OperationSpecial__Group_0__0__Impl : ( () ) ;
    public final void rule__OperationSpecial__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6749:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6750:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6750:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6751:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationSpecialAccess().getOperationSpecialGetterAction_0_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6752:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6754:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationSpecialAccess().getOperationSpecialGetterAction_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_0__0__Impl"


    // $ANTLR start "rule__OperationSpecial__Group_0__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6764:1: rule__OperationSpecial__Group_0__1 : rule__OperationSpecial__Group_0__1__Impl ;
    public final void rule__OperationSpecial__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6768:1: ( rule__OperationSpecial__Group_0__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6769:2: rule__OperationSpecial__Group_0__1__Impl
            {
            pushFollow(FOLLOW_rule__OperationSpecial__Group_0__1__Impl_in_rule__OperationSpecial__Group_0__113665);
            rule__OperationSpecial__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_0__1"


    // $ANTLR start "rule__OperationSpecial__Group_0__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6775:1: rule__OperationSpecial__Group_0__1__Impl : ( 'getter' ) ;
    public final void rule__OperationSpecial__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6779:1: ( ( 'getter' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6780:1: ( 'getter' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6780:1: ( 'getter' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6781:1: 'getter'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationSpecialAccess().getGetterKeyword_0_1()); 
            }
            match(input,58,FOLLOW_58_in_rule__OperationSpecial__Group_0__1__Impl13693); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationSpecialAccess().getGetterKeyword_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_0__1__Impl"


    // $ANTLR start "rule__OperationSpecial__Group_1__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6798:1: rule__OperationSpecial__Group_1__0 : rule__OperationSpecial__Group_1__0__Impl rule__OperationSpecial__Group_1__1 ;
    public final void rule__OperationSpecial__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6802:1: ( rule__OperationSpecial__Group_1__0__Impl rule__OperationSpecial__Group_1__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6803:2: rule__OperationSpecial__Group_1__0__Impl rule__OperationSpecial__Group_1__1
            {
            pushFollow(FOLLOW_rule__OperationSpecial__Group_1__0__Impl_in_rule__OperationSpecial__Group_1__013728);
            rule__OperationSpecial__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__OperationSpecial__Group_1__1_in_rule__OperationSpecial__Group_1__013731);
            rule__OperationSpecial__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_1__0"


    // $ANTLR start "rule__OperationSpecial__Group_1__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6810:1: rule__OperationSpecial__Group_1__0__Impl : ( () ) ;
    public final void rule__OperationSpecial__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6814:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6815:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6815:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6816:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationSpecialAccess().getOperationSpecialSetterAction_1_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6817:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6819:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationSpecialAccess().getOperationSpecialSetterAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_1__0__Impl"


    // $ANTLR start "rule__OperationSpecial__Group_1__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6829:1: rule__OperationSpecial__Group_1__1 : rule__OperationSpecial__Group_1__1__Impl ;
    public final void rule__OperationSpecial__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6833:1: ( rule__OperationSpecial__Group_1__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6834:2: rule__OperationSpecial__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__OperationSpecial__Group_1__1__Impl_in_rule__OperationSpecial__Group_1__113789);
            rule__OperationSpecial__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_1__1"


    // $ANTLR start "rule__OperationSpecial__Group_1__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6840:1: rule__OperationSpecial__Group_1__1__Impl : ( 'setter' ) ;
    public final void rule__OperationSpecial__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6844:1: ( ( 'setter' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6845:1: ( 'setter' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6845:1: ( 'setter' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6846:1: 'setter'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationSpecialAccess().getSetterKeyword_1_1()); 
            }
            match(input,59,FOLLOW_59_in_rule__OperationSpecial__Group_1__1__Impl13817); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationSpecialAccess().getSetterKeyword_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_1__1__Impl"


    // $ANTLR start "rule__OperationSpecial__Group_2__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6863:1: rule__OperationSpecial__Group_2__0 : rule__OperationSpecial__Group_2__0__Impl rule__OperationSpecial__Group_2__1 ;
    public final void rule__OperationSpecial__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6867:1: ( rule__OperationSpecial__Group_2__0__Impl rule__OperationSpecial__Group_2__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6868:2: rule__OperationSpecial__Group_2__0__Impl rule__OperationSpecial__Group_2__1
            {
            pushFollow(FOLLOW_rule__OperationSpecial__Group_2__0__Impl_in_rule__OperationSpecial__Group_2__013852);
            rule__OperationSpecial__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__OperationSpecial__Group_2__1_in_rule__OperationSpecial__Group_2__013855);
            rule__OperationSpecial__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_2__0"


    // $ANTLR start "rule__OperationSpecial__Group_2__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6875:1: rule__OperationSpecial__Group_2__0__Impl : ( () ) ;
    public final void rule__OperationSpecial__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6879:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6880:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6880:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6881:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationSpecialAccess().getOperationSpecialCreatorAction_2_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6882:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6884:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationSpecialAccess().getOperationSpecialCreatorAction_2_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_2__0__Impl"


    // $ANTLR start "rule__OperationSpecial__Group_2__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6894:1: rule__OperationSpecial__Group_2__1 : rule__OperationSpecial__Group_2__1__Impl ;
    public final void rule__OperationSpecial__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6898:1: ( rule__OperationSpecial__Group_2__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6899:2: rule__OperationSpecial__Group_2__1__Impl
            {
            pushFollow(FOLLOW_rule__OperationSpecial__Group_2__1__Impl_in_rule__OperationSpecial__Group_2__113913);
            rule__OperationSpecial__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_2__1"


    // $ANTLR start "rule__OperationSpecial__Group_2__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6905:1: rule__OperationSpecial__Group_2__1__Impl : ( 'creator' ) ;
    public final void rule__OperationSpecial__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6909:1: ( ( 'creator' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6910:1: ( 'creator' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6910:1: ( 'creator' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6911:1: 'creator'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationSpecialAccess().getCreatorKeyword_2_1()); 
            }
            match(input,60,FOLLOW_60_in_rule__OperationSpecial__Group_2__1__Impl13941); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationSpecialAccess().getCreatorKeyword_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_2__1__Impl"


    // $ANTLR start "rule__OperationSpecial__Group_3__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6928:1: rule__OperationSpecial__Group_3__0 : rule__OperationSpecial__Group_3__0__Impl rule__OperationSpecial__Group_3__1 ;
    public final void rule__OperationSpecial__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6932:1: ( rule__OperationSpecial__Group_3__0__Impl rule__OperationSpecial__Group_3__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6933:2: rule__OperationSpecial__Group_3__0__Impl rule__OperationSpecial__Group_3__1
            {
            pushFollow(FOLLOW_rule__OperationSpecial__Group_3__0__Impl_in_rule__OperationSpecial__Group_3__013976);
            rule__OperationSpecial__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__OperationSpecial__Group_3__1_in_rule__OperationSpecial__Group_3__013979);
            rule__OperationSpecial__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_3__0"


    // $ANTLR start "rule__OperationSpecial__Group_3__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6940:1: rule__OperationSpecial__Group_3__0__Impl : ( () ) ;
    public final void rule__OperationSpecial__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6944:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6945:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6945:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6946:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationSpecialAccess().getOperationSpecialDeleterAction_3_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6947:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6949:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationSpecialAccess().getOperationSpecialDeleterAction_3_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_3__0__Impl"


    // $ANTLR start "rule__OperationSpecial__Group_3__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6959:1: rule__OperationSpecial__Group_3__1 : rule__OperationSpecial__Group_3__1__Impl ;
    public final void rule__OperationSpecial__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6963:1: ( rule__OperationSpecial__Group_3__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6964:2: rule__OperationSpecial__Group_3__1__Impl
            {
            pushFollow(FOLLOW_rule__OperationSpecial__Group_3__1__Impl_in_rule__OperationSpecial__Group_3__114037);
            rule__OperationSpecial__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_3__1"


    // $ANTLR start "rule__OperationSpecial__Group_3__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6970:1: rule__OperationSpecial__Group_3__1__Impl : ( 'deleter' ) ;
    public final void rule__OperationSpecial__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6974:1: ( ( 'deleter' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6975:1: ( 'deleter' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6975:1: ( 'deleter' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6976:1: 'deleter'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationSpecialAccess().getDeleterKeyword_3_1()); 
            }
            match(input,61,FOLLOW_61_in_rule__OperationSpecial__Group_3__1__Impl14065); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationSpecialAccess().getDeleterKeyword_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_3__1__Impl"


    // $ANTLR start "rule__OperationSpecial__Group_4__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6993:1: rule__OperationSpecial__Group_4__0 : rule__OperationSpecial__Group_4__0__Impl rule__OperationSpecial__Group_4__1 ;
    public final void rule__OperationSpecial__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6997:1: ( rule__OperationSpecial__Group_4__0__Impl rule__OperationSpecial__Group_4__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:6998:2: rule__OperationSpecial__Group_4__0__Impl rule__OperationSpecial__Group_4__1
            {
            pushFollow(FOLLOW_rule__OperationSpecial__Group_4__0__Impl_in_rule__OperationSpecial__Group_4__014100);
            rule__OperationSpecial__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__OperationSpecial__Group_4__1_in_rule__OperationSpecial__Group_4__014103);
            rule__OperationSpecial__Group_4__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_4__0"


    // $ANTLR start "rule__OperationSpecial__Group_4__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7005:1: rule__OperationSpecial__Group_4__0__Impl : ( () ) ;
    public final void rule__OperationSpecial__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7009:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7010:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7010:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7011:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationSpecialAccess().getOperationSpecialCallerAction_4_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7012:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7014:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationSpecialAccess().getOperationSpecialCallerAction_4_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_4__0__Impl"


    // $ANTLR start "rule__OperationSpecial__Group_4__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7024:1: rule__OperationSpecial__Group_4__1 : rule__OperationSpecial__Group_4__1__Impl ;
    public final void rule__OperationSpecial__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7028:1: ( rule__OperationSpecial__Group_4__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7029:2: rule__OperationSpecial__Group_4__1__Impl
            {
            pushFollow(FOLLOW_rule__OperationSpecial__Group_4__1__Impl_in_rule__OperationSpecial__Group_4__114161);
            rule__OperationSpecial__Group_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_4__1"


    // $ANTLR start "rule__OperationSpecial__Group_4__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7035:1: rule__OperationSpecial__Group_4__1__Impl : ( 'caller' ) ;
    public final void rule__OperationSpecial__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7039:1: ( ( 'caller' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7040:1: ( 'caller' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7040:1: ( 'caller' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7041:1: 'caller'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationSpecialAccess().getCallerKeyword_4_1()); 
            }
            match(input,62,FOLLOW_62_in_rule__OperationSpecial__Group_4__1__Impl14189); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationSpecialAccess().getCallerKeyword_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OperationSpecial__Group_4__1__Impl"


    // $ANTLR start "rule__Attribute__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7058:1: rule__Attribute__Group__0 : rule__Attribute__Group__0__Impl rule__Attribute__Group__1 ;
    public final void rule__Attribute__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7062:1: ( rule__Attribute__Group__0__Impl rule__Attribute__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7063:2: rule__Attribute__Group__0__Impl rule__Attribute__Group__1
            {
            pushFollow(FOLLOW_rule__Attribute__Group__0__Impl_in_rule__Attribute__Group__014224);
            rule__Attribute__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group__1_in_rule__Attribute__Group__014227);
            rule__Attribute__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__0"


    // $ANTLR start "rule__Attribute__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7070:1: rule__Attribute__Group__0__Impl : ( ( rule__Attribute__Group_0__0 )? ) ;
    public final void rule__Attribute__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7074:1: ( ( ( rule__Attribute__Group_0__0 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7075:1: ( ( rule__Attribute__Group_0__0 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7075:1: ( ( rule__Attribute__Group_0__0 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7076:1: ( rule__Attribute__Group_0__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getGroup_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7077:1: ( rule__Attribute__Group_0__0 )?
            int alt51=2;
            int LA51_0 = input.LA(1);

            if ( (LA51_0==51) ) {
                alt51=1;
            }
            switch (alt51) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7077:2: rule__Attribute__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__Attribute__Group_0__0_in_rule__Attribute__Group__0__Impl14254);
                    rule__Attribute__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getGroup_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__0__Impl"


    // $ANTLR start "rule__Attribute__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7087:1: rule__Attribute__Group__1 : rule__Attribute__Group__1__Impl rule__Attribute__Group__2 ;
    public final void rule__Attribute__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7091:1: ( rule__Attribute__Group__1__Impl rule__Attribute__Group__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7092:2: rule__Attribute__Group__1__Impl rule__Attribute__Group__2
            {
            pushFollow(FOLLOW_rule__Attribute__Group__1__Impl_in_rule__Attribute__Group__114285);
            rule__Attribute__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group__2_in_rule__Attribute__Group__114288);
            rule__Attribute__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__1"


    // $ANTLR start "rule__Attribute__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7099:1: rule__Attribute__Group__1__Impl : ( ( rule__Attribute__StringifierAssignment_1 )? ) ;
    public final void rule__Attribute__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7103:1: ( ( ( rule__Attribute__StringifierAssignment_1 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7104:1: ( ( rule__Attribute__StringifierAssignment_1 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7104:1: ( ( rule__Attribute__StringifierAssignment_1 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7105:1: ( rule__Attribute__StringifierAssignment_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getStringifierAssignment_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7106:1: ( rule__Attribute__StringifierAssignment_1 )?
            int alt52=2;
            int LA52_0 = input.LA(1);

            if ( (LA52_0==76) ) {
                alt52=1;
            }
            switch (alt52) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7106:2: rule__Attribute__StringifierAssignment_1
                    {
                    pushFollow(FOLLOW_rule__Attribute__StringifierAssignment_1_in_rule__Attribute__Group__1__Impl14315);
                    rule__Attribute__StringifierAssignment_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getStringifierAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__1__Impl"


    // $ANTLR start "rule__Attribute__Group__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7116:1: rule__Attribute__Group__2 : rule__Attribute__Group__2__Impl rule__Attribute__Group__3 ;
    public final void rule__Attribute__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7120:1: ( rule__Attribute__Group__2__Impl rule__Attribute__Group__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7121:2: rule__Attribute__Group__2__Impl rule__Attribute__Group__3
            {
            pushFollow(FOLLOW_rule__Attribute__Group__2__Impl_in_rule__Attribute__Group__214346);
            rule__Attribute__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group__3_in_rule__Attribute__Group__214349);
            rule__Attribute__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__2"


    // $ANTLR start "rule__Attribute__Group__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7128:1: rule__Attribute__Group__2__Impl : ( ( 'readonly' )? ) ;
    public final void rule__Attribute__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7132:1: ( ( ( 'readonly' )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7133:1: ( ( 'readonly' )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7133:1: ( ( 'readonly' )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7134:1: ( 'readonly' )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getReadonlyKeyword_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7135:1: ( 'readonly' )?
            int alt53=2;
            int LA53_0 = input.LA(1);

            if ( (LA53_0==63) ) {
                alt53=1;
            }
            switch (alt53) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7136:2: 'readonly'
                    {
                    match(input,63,FOLLOW_63_in_rule__Attribute__Group__2__Impl14378); if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getReadonlyKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__2__Impl"


    // $ANTLR start "rule__Attribute__Group__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7147:1: rule__Attribute__Group__3 : rule__Attribute__Group__3__Impl rule__Attribute__Group__4 ;
    public final void rule__Attribute__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7151:1: ( rule__Attribute__Group__3__Impl rule__Attribute__Group__4 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7152:2: rule__Attribute__Group__3__Impl rule__Attribute__Group__4
            {
            pushFollow(FOLLOW_rule__Attribute__Group__3__Impl_in_rule__Attribute__Group__314411);
            rule__Attribute__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group__4_in_rule__Attribute__Group__314414);
            rule__Attribute__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__3"


    // $ANTLR start "rule__Attribute__Group__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7159:1: rule__Attribute__Group__3__Impl : ( 'attribute' ) ;
    public final void rule__Attribute__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7163:1: ( ( 'attribute' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7164:1: ( 'attribute' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7164:1: ( 'attribute' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7165:1: 'attribute'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getAttributeKeyword_3()); 
            }
            match(input,64,FOLLOW_64_in_rule__Attribute__Group__3__Impl14442); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getAttributeKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__3__Impl"


    // $ANTLR start "rule__Attribute__Group__4"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7178:1: rule__Attribute__Group__4 : rule__Attribute__Group__4__Impl rule__Attribute__Group__5 ;
    public final void rule__Attribute__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7182:1: ( rule__Attribute__Group__4__Impl rule__Attribute__Group__5 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7183:2: rule__Attribute__Group__4__Impl rule__Attribute__Group__5
            {
            pushFollow(FOLLOW_rule__Attribute__Group__4__Impl_in_rule__Attribute__Group__414473);
            rule__Attribute__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group__5_in_rule__Attribute__Group__414476);
            rule__Attribute__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__4"


    // $ANTLR start "rule__Attribute__Group__4__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7190:1: rule__Attribute__Group__4__Impl : ( ( rule__Attribute__TypeAssignment_4 ) ) ;
    public final void rule__Attribute__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7194:1: ( ( ( rule__Attribute__TypeAssignment_4 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7195:1: ( ( rule__Attribute__TypeAssignment_4 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7195:1: ( ( rule__Attribute__TypeAssignment_4 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7196:1: ( rule__Attribute__TypeAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getTypeAssignment_4()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7197:1: ( rule__Attribute__TypeAssignment_4 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7197:2: rule__Attribute__TypeAssignment_4
            {
            pushFollow(FOLLOW_rule__Attribute__TypeAssignment_4_in_rule__Attribute__Group__4__Impl14503);
            rule__Attribute__TypeAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getTypeAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__4__Impl"


    // $ANTLR start "rule__Attribute__Group__5"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7207:1: rule__Attribute__Group__5 : rule__Attribute__Group__5__Impl rule__Attribute__Group__6 ;
    public final void rule__Attribute__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7211:1: ( rule__Attribute__Group__5__Impl rule__Attribute__Group__6 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7212:2: rule__Attribute__Group__5__Impl rule__Attribute__Group__6
            {
            pushFollow(FOLLOW_rule__Attribute__Group__5__Impl_in_rule__Attribute__Group__514533);
            rule__Attribute__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group__6_in_rule__Attribute__Group__514536);
            rule__Attribute__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__5"


    // $ANTLR start "rule__Attribute__Group__5__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7219:1: rule__Attribute__Group__5__Impl : ( ( rule__Attribute__NameAssignment_5 ) ) ;
    public final void rule__Attribute__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7223:1: ( ( ( rule__Attribute__NameAssignment_5 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7224:1: ( ( rule__Attribute__NameAssignment_5 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7224:1: ( ( rule__Attribute__NameAssignment_5 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7225:1: ( rule__Attribute__NameAssignment_5 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getNameAssignment_5()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7226:1: ( rule__Attribute__NameAssignment_5 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7226:2: rule__Attribute__NameAssignment_5
            {
            pushFollow(FOLLOW_rule__Attribute__NameAssignment_5_in_rule__Attribute__Group__5__Impl14563);
            rule__Attribute__NameAssignment_5();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getNameAssignment_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__5__Impl"


    // $ANTLR start "rule__Attribute__Group__6"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7236:1: rule__Attribute__Group__6 : rule__Attribute__Group__6__Impl rule__Attribute__Group__7 ;
    public final void rule__Attribute__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7240:1: ( rule__Attribute__Group__6__Impl rule__Attribute__Group__7 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7241:2: rule__Attribute__Group__6__Impl rule__Attribute__Group__7
            {
            pushFollow(FOLLOW_rule__Attribute__Group__6__Impl_in_rule__Attribute__Group__614593);
            rule__Attribute__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group__7_in_rule__Attribute__Group__614596);
            rule__Attribute__Group__7();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__6"


    // $ANTLR start "rule__Attribute__Group__6__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7248:1: rule__Attribute__Group__6__Impl : ( ( rule__Attribute__Group_6__0 ) ) ;
    public final void rule__Attribute__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7252:1: ( ( ( rule__Attribute__Group_6__0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7253:1: ( ( rule__Attribute__Group_6__0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7253:1: ( ( rule__Attribute__Group_6__0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7254:1: ( rule__Attribute__Group_6__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getGroup_6()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7255:1: ( rule__Attribute__Group_6__0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7255:2: rule__Attribute__Group_6__0
            {
            pushFollow(FOLLOW_rule__Attribute__Group_6__0_in_rule__Attribute__Group__6__Impl14623);
            rule__Attribute__Group_6__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getGroup_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__6__Impl"


    // $ANTLR start "rule__Attribute__Group__7"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7265:1: rule__Attribute__Group__7 : rule__Attribute__Group__7__Impl ;
    public final void rule__Attribute__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7269:1: ( rule__Attribute__Group__7__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7270:2: rule__Attribute__Group__7__Impl
            {
            pushFollow(FOLLOW_rule__Attribute__Group__7__Impl_in_rule__Attribute__Group__714653);
            rule__Attribute__Group__7__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__7"


    // $ANTLR start "rule__Attribute__Group__7__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7276:1: rule__Attribute__Group__7__Impl : ( ';' ) ;
    public final void rule__Attribute__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7280:1: ( ( ';' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7281:1: ( ';' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7281:1: ( ';' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7282:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getSemicolonKeyword_7()); 
            }
            match(input,25,FOLLOW_25_in_rule__Attribute__Group__7__Impl14681); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getSemicolonKeyword_7()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__7__Impl"


    // $ANTLR start "rule__Attribute__Group_0__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7311:1: rule__Attribute__Group_0__0 : rule__Attribute__Group_0__0__Impl rule__Attribute__Group_0__1 ;
    public final void rule__Attribute__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7315:1: ( rule__Attribute__Group_0__0__Impl rule__Attribute__Group_0__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7316:2: rule__Attribute__Group_0__0__Impl rule__Attribute__Group_0__1
            {
            pushFollow(FOLLOW_rule__Attribute__Group_0__0__Impl_in_rule__Attribute__Group_0__014728);
            rule__Attribute__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group_0__1_in_rule__Attribute__Group_0__014731);
            rule__Attribute__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_0__0"


    // $ANTLR start "rule__Attribute__Group_0__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7323:1: rule__Attribute__Group_0__0__Impl : ( '[' ) ;
    public final void rule__Attribute__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7327:1: ( ( '[' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7328:1: ( '[' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7328:1: ( '[' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7329:1: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getLeftSquareBracketKeyword_0_0()); 
            }
            match(input,51,FOLLOW_51_in_rule__Attribute__Group_0__0__Impl14759); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getLeftSquareBracketKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_0__0__Impl"


    // $ANTLR start "rule__Attribute__Group_0__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7342:1: rule__Attribute__Group_0__1 : rule__Attribute__Group_0__1__Impl rule__Attribute__Group_0__2 ;
    public final void rule__Attribute__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7346:1: ( rule__Attribute__Group_0__1__Impl rule__Attribute__Group_0__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7347:2: rule__Attribute__Group_0__1__Impl rule__Attribute__Group_0__2
            {
            pushFollow(FOLLOW_rule__Attribute__Group_0__1__Impl_in_rule__Attribute__Group_0__114790);
            rule__Attribute__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group_0__2_in_rule__Attribute__Group_0__114793);
            rule__Attribute__Group_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_0__1"


    // $ANTLR start "rule__Attribute__Group_0__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7354:1: rule__Attribute__Group_0__1__Impl : ( ( rule__Attribute__ExtendedAttributesAssignment_0_1 ) ) ;
    public final void rule__Attribute__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7358:1: ( ( ( rule__Attribute__ExtendedAttributesAssignment_0_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7359:1: ( ( rule__Attribute__ExtendedAttributesAssignment_0_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7359:1: ( ( rule__Attribute__ExtendedAttributesAssignment_0_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7360:1: ( rule__Attribute__ExtendedAttributesAssignment_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getExtendedAttributesAssignment_0_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7361:1: ( rule__Attribute__ExtendedAttributesAssignment_0_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7361:2: rule__Attribute__ExtendedAttributesAssignment_0_1
            {
            pushFollow(FOLLOW_rule__Attribute__ExtendedAttributesAssignment_0_1_in_rule__Attribute__Group_0__1__Impl14820);
            rule__Attribute__ExtendedAttributesAssignment_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getExtendedAttributesAssignment_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_0__1__Impl"


    // $ANTLR start "rule__Attribute__Group_0__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7371:1: rule__Attribute__Group_0__2 : rule__Attribute__Group_0__2__Impl rule__Attribute__Group_0__3 ;
    public final void rule__Attribute__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7375:1: ( rule__Attribute__Group_0__2__Impl rule__Attribute__Group_0__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7376:2: rule__Attribute__Group_0__2__Impl rule__Attribute__Group_0__3
            {
            pushFollow(FOLLOW_rule__Attribute__Group_0__2__Impl_in_rule__Attribute__Group_0__214850);
            rule__Attribute__Group_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group_0__3_in_rule__Attribute__Group_0__214853);
            rule__Attribute__Group_0__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_0__2"


    // $ANTLR start "rule__Attribute__Group_0__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7383:1: rule__Attribute__Group_0__2__Impl : ( ( rule__Attribute__Group_0_2__0 )* ) ;
    public final void rule__Attribute__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7387:1: ( ( ( rule__Attribute__Group_0_2__0 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7388:1: ( ( rule__Attribute__Group_0_2__0 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7388:1: ( ( rule__Attribute__Group_0_2__0 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7389:1: ( rule__Attribute__Group_0_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getGroup_0_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7390:1: ( rule__Attribute__Group_0_2__0 )*
            loop54:
            do {
                int alt54=2;
                int LA54_0 = input.LA(1);

                if ( (LA54_0==33) ) {
                    alt54=1;
                }


                switch (alt54) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7390:2: rule__Attribute__Group_0_2__0
            	    {
            	    pushFollow(FOLLOW_rule__Attribute__Group_0_2__0_in_rule__Attribute__Group_0__2__Impl14880);
            	    rule__Attribute__Group_0_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop54;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getGroup_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_0__2__Impl"


    // $ANTLR start "rule__Attribute__Group_0__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7400:1: rule__Attribute__Group_0__3 : rule__Attribute__Group_0__3__Impl ;
    public final void rule__Attribute__Group_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7404:1: ( rule__Attribute__Group_0__3__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7405:2: rule__Attribute__Group_0__3__Impl
            {
            pushFollow(FOLLOW_rule__Attribute__Group_0__3__Impl_in_rule__Attribute__Group_0__314911);
            rule__Attribute__Group_0__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_0__3"


    // $ANTLR start "rule__Attribute__Group_0__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7411:1: rule__Attribute__Group_0__3__Impl : ( ']' ) ;
    public final void rule__Attribute__Group_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7415:1: ( ( ']' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7416:1: ( ']' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7416:1: ( ']' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7417:1: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getRightSquareBracketKeyword_0_3()); 
            }
            match(input,52,FOLLOW_52_in_rule__Attribute__Group_0__3__Impl14939); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getRightSquareBracketKeyword_0_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_0__3__Impl"


    // $ANTLR start "rule__Attribute__Group_0_2__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7438:1: rule__Attribute__Group_0_2__0 : rule__Attribute__Group_0_2__0__Impl rule__Attribute__Group_0_2__1 ;
    public final void rule__Attribute__Group_0_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7442:1: ( rule__Attribute__Group_0_2__0__Impl rule__Attribute__Group_0_2__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7443:2: rule__Attribute__Group_0_2__0__Impl rule__Attribute__Group_0_2__1
            {
            pushFollow(FOLLOW_rule__Attribute__Group_0_2__0__Impl_in_rule__Attribute__Group_0_2__014978);
            rule__Attribute__Group_0_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group_0_2__1_in_rule__Attribute__Group_0_2__014981);
            rule__Attribute__Group_0_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_0_2__0"


    // $ANTLR start "rule__Attribute__Group_0_2__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7450:1: rule__Attribute__Group_0_2__0__Impl : ( ',' ) ;
    public final void rule__Attribute__Group_0_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7454:1: ( ( ',' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7455:1: ( ',' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7455:1: ( ',' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7456:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getCommaKeyword_0_2_0()); 
            }
            match(input,33,FOLLOW_33_in_rule__Attribute__Group_0_2__0__Impl15009); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getCommaKeyword_0_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_0_2__0__Impl"


    // $ANTLR start "rule__Attribute__Group_0_2__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7469:1: rule__Attribute__Group_0_2__1 : rule__Attribute__Group_0_2__1__Impl ;
    public final void rule__Attribute__Group_0_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7473:1: ( rule__Attribute__Group_0_2__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7474:2: rule__Attribute__Group_0_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Attribute__Group_0_2__1__Impl_in_rule__Attribute__Group_0_2__115040);
            rule__Attribute__Group_0_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_0_2__1"


    // $ANTLR start "rule__Attribute__Group_0_2__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7480:1: rule__Attribute__Group_0_2__1__Impl : ( ( rule__Attribute__ExtendedAttributesAssignment_0_2_1 ) ) ;
    public final void rule__Attribute__Group_0_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7484:1: ( ( ( rule__Attribute__ExtendedAttributesAssignment_0_2_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7485:1: ( ( rule__Attribute__ExtendedAttributesAssignment_0_2_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7485:1: ( ( rule__Attribute__ExtendedAttributesAssignment_0_2_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7486:1: ( rule__Attribute__ExtendedAttributesAssignment_0_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getExtendedAttributesAssignment_0_2_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7487:1: ( rule__Attribute__ExtendedAttributesAssignment_0_2_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7487:2: rule__Attribute__ExtendedAttributesAssignment_0_2_1
            {
            pushFollow(FOLLOW_rule__Attribute__ExtendedAttributesAssignment_0_2_1_in_rule__Attribute__Group_0_2__1__Impl15067);
            rule__Attribute__ExtendedAttributesAssignment_0_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getExtendedAttributesAssignment_0_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_0_2__1__Impl"


    // $ANTLR start "rule__Attribute__Group_6__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7501:1: rule__Attribute__Group_6__0 : rule__Attribute__Group_6__0__Impl rule__Attribute__Group_6__1 ;
    public final void rule__Attribute__Group_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7505:1: ( rule__Attribute__Group_6__0__Impl rule__Attribute__Group_6__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7506:2: rule__Attribute__Group_6__0__Impl rule__Attribute__Group_6__1
            {
            pushFollow(FOLLOW_rule__Attribute__Group_6__0__Impl_in_rule__Attribute__Group_6__015101);
            rule__Attribute__Group_6__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group_6__1_in_rule__Attribute__Group_6__015104);
            rule__Attribute__Group_6__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6__0"


    // $ANTLR start "rule__Attribute__Group_6__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7513:1: rule__Attribute__Group_6__0__Impl : ( ( rule__Attribute__Group_6_0__0 )? ) ;
    public final void rule__Attribute__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7517:1: ( ( ( rule__Attribute__Group_6_0__0 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7518:1: ( ( rule__Attribute__Group_6_0__0 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7518:1: ( ( rule__Attribute__Group_6_0__0 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7519:1: ( rule__Attribute__Group_6_0__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getGroup_6_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7520:1: ( rule__Attribute__Group_6_0__0 )?
            int alt55=2;
            int LA55_0 = input.LA(1);

            if ( (LA55_0==65) ) {
                alt55=1;
            }
            switch (alt55) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7520:2: rule__Attribute__Group_6_0__0
                    {
                    pushFollow(FOLLOW_rule__Attribute__Group_6_0__0_in_rule__Attribute__Group_6__0__Impl15131);
                    rule__Attribute__Group_6_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getGroup_6_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6__0__Impl"


    // $ANTLR start "rule__Attribute__Group_6__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7530:1: rule__Attribute__Group_6__1 : rule__Attribute__Group_6__1__Impl ;
    public final void rule__Attribute__Group_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7534:1: ( rule__Attribute__Group_6__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7535:2: rule__Attribute__Group_6__1__Impl
            {
            pushFollow(FOLLOW_rule__Attribute__Group_6__1__Impl_in_rule__Attribute__Group_6__115162);
            rule__Attribute__Group_6__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6__1"


    // $ANTLR start "rule__Attribute__Group_6__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7541:1: rule__Attribute__Group_6__1__Impl : ( ( rule__Attribute__Group_6_1__0 )? ) ;
    public final void rule__Attribute__Group_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7545:1: ( ( ( rule__Attribute__Group_6_1__0 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7546:1: ( ( rule__Attribute__Group_6_1__0 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7546:1: ( ( rule__Attribute__Group_6_1__0 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7547:1: ( rule__Attribute__Group_6_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getGroup_6_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7548:1: ( rule__Attribute__Group_6_1__0 )?
            int alt56=2;
            int LA56_0 = input.LA(1);

            if ( (LA56_0==66) ) {
                alt56=1;
            }
            switch (alt56) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7548:2: rule__Attribute__Group_6_1__0
                    {
                    pushFollow(FOLLOW_rule__Attribute__Group_6_1__0_in_rule__Attribute__Group_6__1__Impl15189);
                    rule__Attribute__Group_6_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getGroup_6_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6__1__Impl"


    // $ANTLR start "rule__Attribute__Group_6_0__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7562:1: rule__Attribute__Group_6_0__0 : rule__Attribute__Group_6_0__0__Impl rule__Attribute__Group_6_0__1 ;
    public final void rule__Attribute__Group_6_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7566:1: ( rule__Attribute__Group_6_0__0__Impl rule__Attribute__Group_6_0__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7567:2: rule__Attribute__Group_6_0__0__Impl rule__Attribute__Group_6_0__1
            {
            pushFollow(FOLLOW_rule__Attribute__Group_6_0__0__Impl_in_rule__Attribute__Group_6_0__015224);
            rule__Attribute__Group_6_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group_6_0__1_in_rule__Attribute__Group_6_0__015227);
            rule__Attribute__Group_6_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_0__0"


    // $ANTLR start "rule__Attribute__Group_6_0__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7574:1: rule__Attribute__Group_6_0__0__Impl : ( 'getraises' ) ;
    public final void rule__Attribute__Group_6_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7578:1: ( ( 'getraises' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7579:1: ( 'getraises' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7579:1: ( 'getraises' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7580:1: 'getraises'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getGetraisesKeyword_6_0_0()); 
            }
            match(input,65,FOLLOW_65_in_rule__Attribute__Group_6_0__0__Impl15255); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getGetraisesKeyword_6_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_0__0__Impl"


    // $ANTLR start "rule__Attribute__Group_6_0__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7593:1: rule__Attribute__Group_6_0__1 : rule__Attribute__Group_6_0__1__Impl rule__Attribute__Group_6_0__2 ;
    public final void rule__Attribute__Group_6_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7597:1: ( rule__Attribute__Group_6_0__1__Impl rule__Attribute__Group_6_0__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7598:2: rule__Attribute__Group_6_0__1__Impl rule__Attribute__Group_6_0__2
            {
            pushFollow(FOLLOW_rule__Attribute__Group_6_0__1__Impl_in_rule__Attribute__Group_6_0__115286);
            rule__Attribute__Group_6_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group_6_0__2_in_rule__Attribute__Group_6_0__115289);
            rule__Attribute__Group_6_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_0__1"


    // $ANTLR start "rule__Attribute__Group_6_0__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7605:1: rule__Attribute__Group_6_0__1__Impl : ( '(' ) ;
    public final void rule__Attribute__Group_6_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7609:1: ( ( '(' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7610:1: ( '(' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7610:1: ( '(' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7611:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getLeftParenthesisKeyword_6_0_1()); 
            }
            match(input,31,FOLLOW_31_in_rule__Attribute__Group_6_0__1__Impl15317); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getLeftParenthesisKeyword_6_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_0__1__Impl"


    // $ANTLR start "rule__Attribute__Group_6_0__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7624:1: rule__Attribute__Group_6_0__2 : rule__Attribute__Group_6_0__2__Impl rule__Attribute__Group_6_0__3 ;
    public final void rule__Attribute__Group_6_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7628:1: ( rule__Attribute__Group_6_0__2__Impl rule__Attribute__Group_6_0__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7629:2: rule__Attribute__Group_6_0__2__Impl rule__Attribute__Group_6_0__3
            {
            pushFollow(FOLLOW_rule__Attribute__Group_6_0__2__Impl_in_rule__Attribute__Group_6_0__215348);
            rule__Attribute__Group_6_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group_6_0__3_in_rule__Attribute__Group_6_0__215351);
            rule__Attribute__Group_6_0__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_0__2"


    // $ANTLR start "rule__Attribute__Group_6_0__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7636:1: rule__Attribute__Group_6_0__2__Impl : ( ( rule__Attribute__GetRaisesAssignment_6_0_2 ) ) ;
    public final void rule__Attribute__Group_6_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7640:1: ( ( ( rule__Attribute__GetRaisesAssignment_6_0_2 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7641:1: ( ( rule__Attribute__GetRaisesAssignment_6_0_2 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7641:1: ( ( rule__Attribute__GetRaisesAssignment_6_0_2 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7642:1: ( rule__Attribute__GetRaisesAssignment_6_0_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getGetRaisesAssignment_6_0_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7643:1: ( rule__Attribute__GetRaisesAssignment_6_0_2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7643:2: rule__Attribute__GetRaisesAssignment_6_0_2
            {
            pushFollow(FOLLOW_rule__Attribute__GetRaisesAssignment_6_0_2_in_rule__Attribute__Group_6_0__2__Impl15378);
            rule__Attribute__GetRaisesAssignment_6_0_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getGetRaisesAssignment_6_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_0__2__Impl"


    // $ANTLR start "rule__Attribute__Group_6_0__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7653:1: rule__Attribute__Group_6_0__3 : rule__Attribute__Group_6_0__3__Impl rule__Attribute__Group_6_0__4 ;
    public final void rule__Attribute__Group_6_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7657:1: ( rule__Attribute__Group_6_0__3__Impl rule__Attribute__Group_6_0__4 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7658:2: rule__Attribute__Group_6_0__3__Impl rule__Attribute__Group_6_0__4
            {
            pushFollow(FOLLOW_rule__Attribute__Group_6_0__3__Impl_in_rule__Attribute__Group_6_0__315408);
            rule__Attribute__Group_6_0__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group_6_0__4_in_rule__Attribute__Group_6_0__315411);
            rule__Attribute__Group_6_0__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_0__3"


    // $ANTLR start "rule__Attribute__Group_6_0__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7665:1: rule__Attribute__Group_6_0__3__Impl : ( ( rule__Attribute__Group_6_0_3__0 )* ) ;
    public final void rule__Attribute__Group_6_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7669:1: ( ( ( rule__Attribute__Group_6_0_3__0 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7670:1: ( ( rule__Attribute__Group_6_0_3__0 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7670:1: ( ( rule__Attribute__Group_6_0_3__0 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7671:1: ( rule__Attribute__Group_6_0_3__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getGroup_6_0_3()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7672:1: ( rule__Attribute__Group_6_0_3__0 )*
            loop57:
            do {
                int alt57=2;
                int LA57_0 = input.LA(1);

                if ( (LA57_0==33) ) {
                    alt57=1;
                }


                switch (alt57) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7672:2: rule__Attribute__Group_6_0_3__0
            	    {
            	    pushFollow(FOLLOW_rule__Attribute__Group_6_0_3__0_in_rule__Attribute__Group_6_0__3__Impl15438);
            	    rule__Attribute__Group_6_0_3__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop57;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getGroup_6_0_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_0__3__Impl"


    // $ANTLR start "rule__Attribute__Group_6_0__4"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7682:1: rule__Attribute__Group_6_0__4 : rule__Attribute__Group_6_0__4__Impl ;
    public final void rule__Attribute__Group_6_0__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7686:1: ( rule__Attribute__Group_6_0__4__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7687:2: rule__Attribute__Group_6_0__4__Impl
            {
            pushFollow(FOLLOW_rule__Attribute__Group_6_0__4__Impl_in_rule__Attribute__Group_6_0__415469);
            rule__Attribute__Group_6_0__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_0__4"


    // $ANTLR start "rule__Attribute__Group_6_0__4__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7693:1: rule__Attribute__Group_6_0__4__Impl : ( ')' ) ;
    public final void rule__Attribute__Group_6_0__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7697:1: ( ( ')' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7698:1: ( ')' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7698:1: ( ')' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7699:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getRightParenthesisKeyword_6_0_4()); 
            }
            match(input,32,FOLLOW_32_in_rule__Attribute__Group_6_0__4__Impl15497); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getRightParenthesisKeyword_6_0_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_0__4__Impl"


    // $ANTLR start "rule__Attribute__Group_6_0_3__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7722:1: rule__Attribute__Group_6_0_3__0 : rule__Attribute__Group_6_0_3__0__Impl rule__Attribute__Group_6_0_3__1 ;
    public final void rule__Attribute__Group_6_0_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7726:1: ( rule__Attribute__Group_6_0_3__0__Impl rule__Attribute__Group_6_0_3__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7727:2: rule__Attribute__Group_6_0_3__0__Impl rule__Attribute__Group_6_0_3__1
            {
            pushFollow(FOLLOW_rule__Attribute__Group_6_0_3__0__Impl_in_rule__Attribute__Group_6_0_3__015538);
            rule__Attribute__Group_6_0_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group_6_0_3__1_in_rule__Attribute__Group_6_0_3__015541);
            rule__Attribute__Group_6_0_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_0_3__0"


    // $ANTLR start "rule__Attribute__Group_6_0_3__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7734:1: rule__Attribute__Group_6_0_3__0__Impl : ( ',' ) ;
    public final void rule__Attribute__Group_6_0_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7738:1: ( ( ',' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7739:1: ( ',' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7739:1: ( ',' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7740:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getCommaKeyword_6_0_3_0()); 
            }
            match(input,33,FOLLOW_33_in_rule__Attribute__Group_6_0_3__0__Impl15569); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getCommaKeyword_6_0_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_0_3__0__Impl"


    // $ANTLR start "rule__Attribute__Group_6_0_3__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7753:1: rule__Attribute__Group_6_0_3__1 : rule__Attribute__Group_6_0_3__1__Impl ;
    public final void rule__Attribute__Group_6_0_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7757:1: ( rule__Attribute__Group_6_0_3__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7758:2: rule__Attribute__Group_6_0_3__1__Impl
            {
            pushFollow(FOLLOW_rule__Attribute__Group_6_0_3__1__Impl_in_rule__Attribute__Group_6_0_3__115600);
            rule__Attribute__Group_6_0_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_0_3__1"


    // $ANTLR start "rule__Attribute__Group_6_0_3__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7764:1: rule__Attribute__Group_6_0_3__1__Impl : ( ( rule__Attribute__GetRaisesAssignment_6_0_3_1 ) ) ;
    public final void rule__Attribute__Group_6_0_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7768:1: ( ( ( rule__Attribute__GetRaisesAssignment_6_0_3_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7769:1: ( ( rule__Attribute__GetRaisesAssignment_6_0_3_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7769:1: ( ( rule__Attribute__GetRaisesAssignment_6_0_3_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7770:1: ( rule__Attribute__GetRaisesAssignment_6_0_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getGetRaisesAssignment_6_0_3_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7771:1: ( rule__Attribute__GetRaisesAssignment_6_0_3_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7771:2: rule__Attribute__GetRaisesAssignment_6_0_3_1
            {
            pushFollow(FOLLOW_rule__Attribute__GetRaisesAssignment_6_0_3_1_in_rule__Attribute__Group_6_0_3__1__Impl15627);
            rule__Attribute__GetRaisesAssignment_6_0_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getGetRaisesAssignment_6_0_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_0_3__1__Impl"


    // $ANTLR start "rule__Attribute__Group_6_1__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7785:1: rule__Attribute__Group_6_1__0 : rule__Attribute__Group_6_1__0__Impl rule__Attribute__Group_6_1__1 ;
    public final void rule__Attribute__Group_6_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7789:1: ( rule__Attribute__Group_6_1__0__Impl rule__Attribute__Group_6_1__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7790:2: rule__Attribute__Group_6_1__0__Impl rule__Attribute__Group_6_1__1
            {
            pushFollow(FOLLOW_rule__Attribute__Group_6_1__0__Impl_in_rule__Attribute__Group_6_1__015661);
            rule__Attribute__Group_6_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group_6_1__1_in_rule__Attribute__Group_6_1__015664);
            rule__Attribute__Group_6_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_1__0"


    // $ANTLR start "rule__Attribute__Group_6_1__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7797:1: rule__Attribute__Group_6_1__0__Impl : ( 'setraises' ) ;
    public final void rule__Attribute__Group_6_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7801:1: ( ( 'setraises' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7802:1: ( 'setraises' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7802:1: ( 'setraises' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7803:1: 'setraises'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getSetraisesKeyword_6_1_0()); 
            }
            match(input,66,FOLLOW_66_in_rule__Attribute__Group_6_1__0__Impl15692); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getSetraisesKeyword_6_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_1__0__Impl"


    // $ANTLR start "rule__Attribute__Group_6_1__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7816:1: rule__Attribute__Group_6_1__1 : rule__Attribute__Group_6_1__1__Impl rule__Attribute__Group_6_1__2 ;
    public final void rule__Attribute__Group_6_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7820:1: ( rule__Attribute__Group_6_1__1__Impl rule__Attribute__Group_6_1__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7821:2: rule__Attribute__Group_6_1__1__Impl rule__Attribute__Group_6_1__2
            {
            pushFollow(FOLLOW_rule__Attribute__Group_6_1__1__Impl_in_rule__Attribute__Group_6_1__115723);
            rule__Attribute__Group_6_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group_6_1__2_in_rule__Attribute__Group_6_1__115726);
            rule__Attribute__Group_6_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_1__1"


    // $ANTLR start "rule__Attribute__Group_6_1__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7828:1: rule__Attribute__Group_6_1__1__Impl : ( '(' ) ;
    public final void rule__Attribute__Group_6_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7832:1: ( ( '(' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7833:1: ( '(' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7833:1: ( '(' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7834:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getLeftParenthesisKeyword_6_1_1()); 
            }
            match(input,31,FOLLOW_31_in_rule__Attribute__Group_6_1__1__Impl15754); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getLeftParenthesisKeyword_6_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_1__1__Impl"


    // $ANTLR start "rule__Attribute__Group_6_1__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7847:1: rule__Attribute__Group_6_1__2 : rule__Attribute__Group_6_1__2__Impl rule__Attribute__Group_6_1__3 ;
    public final void rule__Attribute__Group_6_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7851:1: ( rule__Attribute__Group_6_1__2__Impl rule__Attribute__Group_6_1__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7852:2: rule__Attribute__Group_6_1__2__Impl rule__Attribute__Group_6_1__3
            {
            pushFollow(FOLLOW_rule__Attribute__Group_6_1__2__Impl_in_rule__Attribute__Group_6_1__215785);
            rule__Attribute__Group_6_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group_6_1__3_in_rule__Attribute__Group_6_1__215788);
            rule__Attribute__Group_6_1__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_1__2"


    // $ANTLR start "rule__Attribute__Group_6_1__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7859:1: rule__Attribute__Group_6_1__2__Impl : ( ( rule__Attribute__SetRaisesAssignment_6_1_2 ) ) ;
    public final void rule__Attribute__Group_6_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7863:1: ( ( ( rule__Attribute__SetRaisesAssignment_6_1_2 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7864:1: ( ( rule__Attribute__SetRaisesAssignment_6_1_2 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7864:1: ( ( rule__Attribute__SetRaisesAssignment_6_1_2 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7865:1: ( rule__Attribute__SetRaisesAssignment_6_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getSetRaisesAssignment_6_1_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7866:1: ( rule__Attribute__SetRaisesAssignment_6_1_2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7866:2: rule__Attribute__SetRaisesAssignment_6_1_2
            {
            pushFollow(FOLLOW_rule__Attribute__SetRaisesAssignment_6_1_2_in_rule__Attribute__Group_6_1__2__Impl15815);
            rule__Attribute__SetRaisesAssignment_6_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getSetRaisesAssignment_6_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_1__2__Impl"


    // $ANTLR start "rule__Attribute__Group_6_1__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7876:1: rule__Attribute__Group_6_1__3 : rule__Attribute__Group_6_1__3__Impl rule__Attribute__Group_6_1__4 ;
    public final void rule__Attribute__Group_6_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7880:1: ( rule__Attribute__Group_6_1__3__Impl rule__Attribute__Group_6_1__4 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7881:2: rule__Attribute__Group_6_1__3__Impl rule__Attribute__Group_6_1__4
            {
            pushFollow(FOLLOW_rule__Attribute__Group_6_1__3__Impl_in_rule__Attribute__Group_6_1__315845);
            rule__Attribute__Group_6_1__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group_6_1__4_in_rule__Attribute__Group_6_1__315848);
            rule__Attribute__Group_6_1__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_1__3"


    // $ANTLR start "rule__Attribute__Group_6_1__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7888:1: rule__Attribute__Group_6_1__3__Impl : ( ( rule__Attribute__Group_6_1_3__0 )* ) ;
    public final void rule__Attribute__Group_6_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7892:1: ( ( ( rule__Attribute__Group_6_1_3__0 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7893:1: ( ( rule__Attribute__Group_6_1_3__0 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7893:1: ( ( rule__Attribute__Group_6_1_3__0 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7894:1: ( rule__Attribute__Group_6_1_3__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getGroup_6_1_3()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7895:1: ( rule__Attribute__Group_6_1_3__0 )*
            loop58:
            do {
                int alt58=2;
                int LA58_0 = input.LA(1);

                if ( (LA58_0==33) ) {
                    alt58=1;
                }


                switch (alt58) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7895:2: rule__Attribute__Group_6_1_3__0
            	    {
            	    pushFollow(FOLLOW_rule__Attribute__Group_6_1_3__0_in_rule__Attribute__Group_6_1__3__Impl15875);
            	    rule__Attribute__Group_6_1_3__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop58;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getGroup_6_1_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_1__3__Impl"


    // $ANTLR start "rule__Attribute__Group_6_1__4"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7905:1: rule__Attribute__Group_6_1__4 : rule__Attribute__Group_6_1__4__Impl ;
    public final void rule__Attribute__Group_6_1__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7909:1: ( rule__Attribute__Group_6_1__4__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7910:2: rule__Attribute__Group_6_1__4__Impl
            {
            pushFollow(FOLLOW_rule__Attribute__Group_6_1__4__Impl_in_rule__Attribute__Group_6_1__415906);
            rule__Attribute__Group_6_1__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_1__4"


    // $ANTLR start "rule__Attribute__Group_6_1__4__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7916:1: rule__Attribute__Group_6_1__4__Impl : ( ')' ) ;
    public final void rule__Attribute__Group_6_1__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7920:1: ( ( ')' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7921:1: ( ')' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7921:1: ( ')' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7922:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getRightParenthesisKeyword_6_1_4()); 
            }
            match(input,32,FOLLOW_32_in_rule__Attribute__Group_6_1__4__Impl15934); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getRightParenthesisKeyword_6_1_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_1__4__Impl"


    // $ANTLR start "rule__Attribute__Group_6_1_3__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7945:1: rule__Attribute__Group_6_1_3__0 : rule__Attribute__Group_6_1_3__0__Impl rule__Attribute__Group_6_1_3__1 ;
    public final void rule__Attribute__Group_6_1_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7949:1: ( rule__Attribute__Group_6_1_3__0__Impl rule__Attribute__Group_6_1_3__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7950:2: rule__Attribute__Group_6_1_3__0__Impl rule__Attribute__Group_6_1_3__1
            {
            pushFollow(FOLLOW_rule__Attribute__Group_6_1_3__0__Impl_in_rule__Attribute__Group_6_1_3__015975);
            rule__Attribute__Group_6_1_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Attribute__Group_6_1_3__1_in_rule__Attribute__Group_6_1_3__015978);
            rule__Attribute__Group_6_1_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_1_3__0"


    // $ANTLR start "rule__Attribute__Group_6_1_3__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7957:1: rule__Attribute__Group_6_1_3__0__Impl : ( ',' ) ;
    public final void rule__Attribute__Group_6_1_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7961:1: ( ( ',' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7962:1: ( ',' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7962:1: ( ',' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7963:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getCommaKeyword_6_1_3_0()); 
            }
            match(input,33,FOLLOW_33_in_rule__Attribute__Group_6_1_3__0__Impl16006); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getCommaKeyword_6_1_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_1_3__0__Impl"


    // $ANTLR start "rule__Attribute__Group_6_1_3__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7976:1: rule__Attribute__Group_6_1_3__1 : rule__Attribute__Group_6_1_3__1__Impl ;
    public final void rule__Attribute__Group_6_1_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7980:1: ( rule__Attribute__Group_6_1_3__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7981:2: rule__Attribute__Group_6_1_3__1__Impl
            {
            pushFollow(FOLLOW_rule__Attribute__Group_6_1_3__1__Impl_in_rule__Attribute__Group_6_1_3__116037);
            rule__Attribute__Group_6_1_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_1_3__1"


    // $ANTLR start "rule__Attribute__Group_6_1_3__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7987:1: rule__Attribute__Group_6_1_3__1__Impl : ( ( rule__Attribute__SetRaisesAssignment_6_1_3_1 ) ) ;
    public final void rule__Attribute__Group_6_1_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7991:1: ( ( ( rule__Attribute__SetRaisesAssignment_6_1_3_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7992:1: ( ( rule__Attribute__SetRaisesAssignment_6_1_3_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7992:1: ( ( rule__Attribute__SetRaisesAssignment_6_1_3_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7993:1: ( rule__Attribute__SetRaisesAssignment_6_1_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getSetRaisesAssignment_6_1_3_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7994:1: ( rule__Attribute__SetRaisesAssignment_6_1_3_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:7994:2: rule__Attribute__SetRaisesAssignment_6_1_3_1
            {
            pushFollow(FOLLOW_rule__Attribute__SetRaisesAssignment_6_1_3_1_in_rule__Attribute__Group_6_1_3__1__Impl16064);
            rule__Attribute__SetRaisesAssignment_6_1_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getSetRaisesAssignment_6_1_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group_6_1_3__1__Impl"


    // $ANTLR start "rule__Exception__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8008:1: rule__Exception__Group__0 : rule__Exception__Group__0__Impl rule__Exception__Group__1 ;
    public final void rule__Exception__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8012:1: ( rule__Exception__Group__0__Impl rule__Exception__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8013:2: rule__Exception__Group__0__Impl rule__Exception__Group__1
            {
            pushFollow(FOLLOW_rule__Exception__Group__0__Impl_in_rule__Exception__Group__016098);
            rule__Exception__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Exception__Group__1_in_rule__Exception__Group__016101);
            rule__Exception__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group__0"


    // $ANTLR start "rule__Exception__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8020:1: rule__Exception__Group__0__Impl : ( ( rule__Exception__Group_0__0 )? ) ;
    public final void rule__Exception__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8024:1: ( ( ( rule__Exception__Group_0__0 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8025:1: ( ( rule__Exception__Group_0__0 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8025:1: ( ( rule__Exception__Group_0__0 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8026:1: ( rule__Exception__Group_0__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionAccess().getGroup_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8027:1: ( rule__Exception__Group_0__0 )?
            int alt59=2;
            int LA59_0 = input.LA(1);

            if ( (LA59_0==51) ) {
                alt59=1;
            }
            switch (alt59) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8027:2: rule__Exception__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__Exception__Group_0__0_in_rule__Exception__Group__0__Impl16128);
                    rule__Exception__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionAccess().getGroup_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group__0__Impl"


    // $ANTLR start "rule__Exception__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8037:1: rule__Exception__Group__1 : rule__Exception__Group__1__Impl rule__Exception__Group__2 ;
    public final void rule__Exception__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8041:1: ( rule__Exception__Group__1__Impl rule__Exception__Group__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8042:2: rule__Exception__Group__1__Impl rule__Exception__Group__2
            {
            pushFollow(FOLLOW_rule__Exception__Group__1__Impl_in_rule__Exception__Group__116159);
            rule__Exception__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Exception__Group__2_in_rule__Exception__Group__116162);
            rule__Exception__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group__1"


    // $ANTLR start "rule__Exception__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8049:1: rule__Exception__Group__1__Impl : ( 'exception' ) ;
    public final void rule__Exception__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8053:1: ( ( 'exception' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8054:1: ( 'exception' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8054:1: ( 'exception' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8055:1: 'exception'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionAccess().getExceptionKeyword_1()); 
            }
            match(input,67,FOLLOW_67_in_rule__Exception__Group__1__Impl16190); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionAccess().getExceptionKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group__1__Impl"


    // $ANTLR start "rule__Exception__Group__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8068:1: rule__Exception__Group__2 : rule__Exception__Group__2__Impl rule__Exception__Group__3 ;
    public final void rule__Exception__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8072:1: ( rule__Exception__Group__2__Impl rule__Exception__Group__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8073:2: rule__Exception__Group__2__Impl rule__Exception__Group__3
            {
            pushFollow(FOLLOW_rule__Exception__Group__2__Impl_in_rule__Exception__Group__216221);
            rule__Exception__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Exception__Group__3_in_rule__Exception__Group__216224);
            rule__Exception__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group__2"


    // $ANTLR start "rule__Exception__Group__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8080:1: rule__Exception__Group__2__Impl : ( ( rule__Exception__NameAssignment_2 ) ) ;
    public final void rule__Exception__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8084:1: ( ( ( rule__Exception__NameAssignment_2 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8085:1: ( ( rule__Exception__NameAssignment_2 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8085:1: ( ( rule__Exception__NameAssignment_2 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8086:1: ( rule__Exception__NameAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionAccess().getNameAssignment_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8087:1: ( rule__Exception__NameAssignment_2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8087:2: rule__Exception__NameAssignment_2
            {
            pushFollow(FOLLOW_rule__Exception__NameAssignment_2_in_rule__Exception__Group__2__Impl16251);
            rule__Exception__NameAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionAccess().getNameAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group__2__Impl"


    // $ANTLR start "rule__Exception__Group__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8097:1: rule__Exception__Group__3 : rule__Exception__Group__3__Impl rule__Exception__Group__4 ;
    public final void rule__Exception__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8101:1: ( rule__Exception__Group__3__Impl rule__Exception__Group__4 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8102:2: rule__Exception__Group__3__Impl rule__Exception__Group__4
            {
            pushFollow(FOLLOW_rule__Exception__Group__3__Impl_in_rule__Exception__Group__316281);
            rule__Exception__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Exception__Group__4_in_rule__Exception__Group__316284);
            rule__Exception__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group__3"


    // $ANTLR start "rule__Exception__Group__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8109:1: rule__Exception__Group__3__Impl : ( '{' ) ;
    public final void rule__Exception__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8113:1: ( ( '{' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8114:1: ( '{' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8114:1: ( '{' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8115:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionAccess().getLeftCurlyBracketKeyword_3()); 
            }
            match(input,49,FOLLOW_49_in_rule__Exception__Group__3__Impl16312); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionAccess().getLeftCurlyBracketKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group__3__Impl"


    // $ANTLR start "rule__Exception__Group__4"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8128:1: rule__Exception__Group__4 : rule__Exception__Group__4__Impl rule__Exception__Group__5 ;
    public final void rule__Exception__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8132:1: ( rule__Exception__Group__4__Impl rule__Exception__Group__5 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8133:2: rule__Exception__Group__4__Impl rule__Exception__Group__5
            {
            pushFollow(FOLLOW_rule__Exception__Group__4__Impl_in_rule__Exception__Group__416343);
            rule__Exception__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Exception__Group__5_in_rule__Exception__Group__416346);
            rule__Exception__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group__4"


    // $ANTLR start "rule__Exception__Group__4__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8140:1: rule__Exception__Group__4__Impl : ( ( rule__Exception__MembersAssignment_4 )* ) ;
    public final void rule__Exception__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8144:1: ( ( ( rule__Exception__MembersAssignment_4 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8145:1: ( ( rule__Exception__MembersAssignment_4 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8145:1: ( ( rule__Exception__MembersAssignment_4 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8146:1: ( rule__Exception__MembersAssignment_4 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionAccess().getMembersAssignment_4()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8147:1: ( rule__Exception__MembersAssignment_4 )*
            loop60:
            do {
                int alt60=2;
                int LA60_0 = input.LA(1);

                if ( (LA60_0==RULE_ID||(LA60_0>=12 && LA60_0<=23)||LA60_0==27||LA60_0==68||LA60_0==71) ) {
                    alt60=1;
                }


                switch (alt60) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8147:2: rule__Exception__MembersAssignment_4
            	    {
            	    pushFollow(FOLLOW_rule__Exception__MembersAssignment_4_in_rule__Exception__Group__4__Impl16373);
            	    rule__Exception__MembersAssignment_4();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop60;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionAccess().getMembersAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group__4__Impl"


    // $ANTLR start "rule__Exception__Group__5"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8157:1: rule__Exception__Group__5 : rule__Exception__Group__5__Impl rule__Exception__Group__6 ;
    public final void rule__Exception__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8161:1: ( rule__Exception__Group__5__Impl rule__Exception__Group__6 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8162:2: rule__Exception__Group__5__Impl rule__Exception__Group__6
            {
            pushFollow(FOLLOW_rule__Exception__Group__5__Impl_in_rule__Exception__Group__516404);
            rule__Exception__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Exception__Group__6_in_rule__Exception__Group__516407);
            rule__Exception__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group__5"


    // $ANTLR start "rule__Exception__Group__5__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8169:1: rule__Exception__Group__5__Impl : ( '}' ) ;
    public final void rule__Exception__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8173:1: ( ( '}' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8174:1: ( '}' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8174:1: ( '}' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8175:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionAccess().getRightCurlyBracketKeyword_5()); 
            }
            match(input,50,FOLLOW_50_in_rule__Exception__Group__5__Impl16435); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionAccess().getRightCurlyBracketKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group__5__Impl"


    // $ANTLR start "rule__Exception__Group__6"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8188:1: rule__Exception__Group__6 : rule__Exception__Group__6__Impl ;
    public final void rule__Exception__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8192:1: ( rule__Exception__Group__6__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8193:2: rule__Exception__Group__6__Impl
            {
            pushFollow(FOLLOW_rule__Exception__Group__6__Impl_in_rule__Exception__Group__616466);
            rule__Exception__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group__6"


    // $ANTLR start "rule__Exception__Group__6__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8199:1: rule__Exception__Group__6__Impl : ( ';' ) ;
    public final void rule__Exception__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8203:1: ( ( ';' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8204:1: ( ';' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8204:1: ( ';' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8205:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionAccess().getSemicolonKeyword_6()); 
            }
            match(input,25,FOLLOW_25_in_rule__Exception__Group__6__Impl16494); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionAccess().getSemicolonKeyword_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group__6__Impl"


    // $ANTLR start "rule__Exception__Group_0__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8232:1: rule__Exception__Group_0__0 : rule__Exception__Group_0__0__Impl rule__Exception__Group_0__1 ;
    public final void rule__Exception__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8236:1: ( rule__Exception__Group_0__0__Impl rule__Exception__Group_0__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8237:2: rule__Exception__Group_0__0__Impl rule__Exception__Group_0__1
            {
            pushFollow(FOLLOW_rule__Exception__Group_0__0__Impl_in_rule__Exception__Group_0__016539);
            rule__Exception__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Exception__Group_0__1_in_rule__Exception__Group_0__016542);
            rule__Exception__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group_0__0"


    // $ANTLR start "rule__Exception__Group_0__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8244:1: rule__Exception__Group_0__0__Impl : ( '[' ) ;
    public final void rule__Exception__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8248:1: ( ( '[' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8249:1: ( '[' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8249:1: ( '[' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8250:1: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionAccess().getLeftSquareBracketKeyword_0_0()); 
            }
            match(input,51,FOLLOW_51_in_rule__Exception__Group_0__0__Impl16570); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionAccess().getLeftSquareBracketKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group_0__0__Impl"


    // $ANTLR start "rule__Exception__Group_0__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8263:1: rule__Exception__Group_0__1 : rule__Exception__Group_0__1__Impl rule__Exception__Group_0__2 ;
    public final void rule__Exception__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8267:1: ( rule__Exception__Group_0__1__Impl rule__Exception__Group_0__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8268:2: rule__Exception__Group_0__1__Impl rule__Exception__Group_0__2
            {
            pushFollow(FOLLOW_rule__Exception__Group_0__1__Impl_in_rule__Exception__Group_0__116601);
            rule__Exception__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Exception__Group_0__2_in_rule__Exception__Group_0__116604);
            rule__Exception__Group_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group_0__1"


    // $ANTLR start "rule__Exception__Group_0__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8275:1: rule__Exception__Group_0__1__Impl : ( ( rule__Exception__ExtendedAttributesAssignment_0_1 ) ) ;
    public final void rule__Exception__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8279:1: ( ( ( rule__Exception__ExtendedAttributesAssignment_0_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8280:1: ( ( rule__Exception__ExtendedAttributesAssignment_0_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8280:1: ( ( rule__Exception__ExtendedAttributesAssignment_0_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8281:1: ( rule__Exception__ExtendedAttributesAssignment_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionAccess().getExtendedAttributesAssignment_0_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8282:1: ( rule__Exception__ExtendedAttributesAssignment_0_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8282:2: rule__Exception__ExtendedAttributesAssignment_0_1
            {
            pushFollow(FOLLOW_rule__Exception__ExtendedAttributesAssignment_0_1_in_rule__Exception__Group_0__1__Impl16631);
            rule__Exception__ExtendedAttributesAssignment_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionAccess().getExtendedAttributesAssignment_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group_0__1__Impl"


    // $ANTLR start "rule__Exception__Group_0__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8292:1: rule__Exception__Group_0__2 : rule__Exception__Group_0__2__Impl rule__Exception__Group_0__3 ;
    public final void rule__Exception__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8296:1: ( rule__Exception__Group_0__2__Impl rule__Exception__Group_0__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8297:2: rule__Exception__Group_0__2__Impl rule__Exception__Group_0__3
            {
            pushFollow(FOLLOW_rule__Exception__Group_0__2__Impl_in_rule__Exception__Group_0__216661);
            rule__Exception__Group_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Exception__Group_0__3_in_rule__Exception__Group_0__216664);
            rule__Exception__Group_0__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group_0__2"


    // $ANTLR start "rule__Exception__Group_0__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8304:1: rule__Exception__Group_0__2__Impl : ( ( rule__Exception__Group_0_2__0 )* ) ;
    public final void rule__Exception__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8308:1: ( ( ( rule__Exception__Group_0_2__0 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8309:1: ( ( rule__Exception__Group_0_2__0 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8309:1: ( ( rule__Exception__Group_0_2__0 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8310:1: ( rule__Exception__Group_0_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionAccess().getGroup_0_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8311:1: ( rule__Exception__Group_0_2__0 )*
            loop61:
            do {
                int alt61=2;
                int LA61_0 = input.LA(1);

                if ( (LA61_0==33) ) {
                    alt61=1;
                }


                switch (alt61) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8311:2: rule__Exception__Group_0_2__0
            	    {
            	    pushFollow(FOLLOW_rule__Exception__Group_0_2__0_in_rule__Exception__Group_0__2__Impl16691);
            	    rule__Exception__Group_0_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop61;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionAccess().getGroup_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group_0__2__Impl"


    // $ANTLR start "rule__Exception__Group_0__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8321:1: rule__Exception__Group_0__3 : rule__Exception__Group_0__3__Impl ;
    public final void rule__Exception__Group_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8325:1: ( rule__Exception__Group_0__3__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8326:2: rule__Exception__Group_0__3__Impl
            {
            pushFollow(FOLLOW_rule__Exception__Group_0__3__Impl_in_rule__Exception__Group_0__316722);
            rule__Exception__Group_0__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group_0__3"


    // $ANTLR start "rule__Exception__Group_0__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8332:1: rule__Exception__Group_0__3__Impl : ( ']' ) ;
    public final void rule__Exception__Group_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8336:1: ( ( ']' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8337:1: ( ']' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8337:1: ( ']' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8338:1: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionAccess().getRightSquareBracketKeyword_0_3()); 
            }
            match(input,52,FOLLOW_52_in_rule__Exception__Group_0__3__Impl16750); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionAccess().getRightSquareBracketKeyword_0_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group_0__3__Impl"


    // $ANTLR start "rule__Exception__Group_0_2__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8359:1: rule__Exception__Group_0_2__0 : rule__Exception__Group_0_2__0__Impl rule__Exception__Group_0_2__1 ;
    public final void rule__Exception__Group_0_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8363:1: ( rule__Exception__Group_0_2__0__Impl rule__Exception__Group_0_2__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8364:2: rule__Exception__Group_0_2__0__Impl rule__Exception__Group_0_2__1
            {
            pushFollow(FOLLOW_rule__Exception__Group_0_2__0__Impl_in_rule__Exception__Group_0_2__016789);
            rule__Exception__Group_0_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Exception__Group_0_2__1_in_rule__Exception__Group_0_2__016792);
            rule__Exception__Group_0_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group_0_2__0"


    // $ANTLR start "rule__Exception__Group_0_2__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8371:1: rule__Exception__Group_0_2__0__Impl : ( ',' ) ;
    public final void rule__Exception__Group_0_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8375:1: ( ( ',' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8376:1: ( ',' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8376:1: ( ',' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8377:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionAccess().getCommaKeyword_0_2_0()); 
            }
            match(input,33,FOLLOW_33_in_rule__Exception__Group_0_2__0__Impl16820); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionAccess().getCommaKeyword_0_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group_0_2__0__Impl"


    // $ANTLR start "rule__Exception__Group_0_2__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8390:1: rule__Exception__Group_0_2__1 : rule__Exception__Group_0_2__1__Impl ;
    public final void rule__Exception__Group_0_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8394:1: ( rule__Exception__Group_0_2__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8395:2: rule__Exception__Group_0_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Exception__Group_0_2__1__Impl_in_rule__Exception__Group_0_2__116851);
            rule__Exception__Group_0_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group_0_2__1"


    // $ANTLR start "rule__Exception__Group_0_2__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8401:1: rule__Exception__Group_0_2__1__Impl : ( ( rule__Exception__ExtendedAttributesAssignment_0_2_1 ) ) ;
    public final void rule__Exception__Group_0_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8405:1: ( ( ( rule__Exception__ExtendedAttributesAssignment_0_2_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8406:1: ( ( rule__Exception__ExtendedAttributesAssignment_0_2_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8406:1: ( ( rule__Exception__ExtendedAttributesAssignment_0_2_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8407:1: ( rule__Exception__ExtendedAttributesAssignment_0_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionAccess().getExtendedAttributesAssignment_0_2_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8408:1: ( rule__Exception__ExtendedAttributesAssignment_0_2_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8408:2: rule__Exception__ExtendedAttributesAssignment_0_2_1
            {
            pushFollow(FOLLOW_rule__Exception__ExtendedAttributesAssignment_0_2_1_in_rule__Exception__Group_0_2__1__Impl16878);
            rule__Exception__ExtendedAttributesAssignment_0_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionAccess().getExtendedAttributesAssignment_0_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__Group_0_2__1__Impl"


    // $ANTLR start "rule__ExceptionField__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8422:1: rule__ExceptionField__Group__0 : rule__ExceptionField__Group__0__Impl rule__ExceptionField__Group__1 ;
    public final void rule__ExceptionField__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8426:1: ( rule__ExceptionField__Group__0__Impl rule__ExceptionField__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8427:2: rule__ExceptionField__Group__0__Impl rule__ExceptionField__Group__1
            {
            pushFollow(FOLLOW_rule__ExceptionField__Group__0__Impl_in_rule__ExceptionField__Group__016912);
            rule__ExceptionField__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ExceptionField__Group__1_in_rule__ExceptionField__Group__016915);
            rule__ExceptionField__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ExceptionField__Group__0"


    // $ANTLR start "rule__ExceptionField__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8434:1: rule__ExceptionField__Group__0__Impl : ( ( rule__ExceptionField__TypeAssignment_0 ) ) ;
    public final void rule__ExceptionField__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8438:1: ( ( ( rule__ExceptionField__TypeAssignment_0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8439:1: ( ( rule__ExceptionField__TypeAssignment_0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8439:1: ( ( rule__ExceptionField__TypeAssignment_0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8440:1: ( rule__ExceptionField__TypeAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionFieldAccess().getTypeAssignment_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8441:1: ( rule__ExceptionField__TypeAssignment_0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8441:2: rule__ExceptionField__TypeAssignment_0
            {
            pushFollow(FOLLOW_rule__ExceptionField__TypeAssignment_0_in_rule__ExceptionField__Group__0__Impl16942);
            rule__ExceptionField__TypeAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionFieldAccess().getTypeAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ExceptionField__Group__0__Impl"


    // $ANTLR start "rule__ExceptionField__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8451:1: rule__ExceptionField__Group__1 : rule__ExceptionField__Group__1__Impl rule__ExceptionField__Group__2 ;
    public final void rule__ExceptionField__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8455:1: ( rule__ExceptionField__Group__1__Impl rule__ExceptionField__Group__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8456:2: rule__ExceptionField__Group__1__Impl rule__ExceptionField__Group__2
            {
            pushFollow(FOLLOW_rule__ExceptionField__Group__1__Impl_in_rule__ExceptionField__Group__116972);
            rule__ExceptionField__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ExceptionField__Group__2_in_rule__ExceptionField__Group__116975);
            rule__ExceptionField__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ExceptionField__Group__1"


    // $ANTLR start "rule__ExceptionField__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8463:1: rule__ExceptionField__Group__1__Impl : ( ( rule__ExceptionField__NameAssignment_1 ) ) ;
    public final void rule__ExceptionField__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8467:1: ( ( ( rule__ExceptionField__NameAssignment_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8468:1: ( ( rule__ExceptionField__NameAssignment_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8468:1: ( ( rule__ExceptionField__NameAssignment_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8469:1: ( rule__ExceptionField__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionFieldAccess().getNameAssignment_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8470:1: ( rule__ExceptionField__NameAssignment_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8470:2: rule__ExceptionField__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__ExceptionField__NameAssignment_1_in_rule__ExceptionField__Group__1__Impl17002);
            rule__ExceptionField__NameAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionFieldAccess().getNameAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ExceptionField__Group__1__Impl"


    // $ANTLR start "rule__ExceptionField__Group__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8480:1: rule__ExceptionField__Group__2 : rule__ExceptionField__Group__2__Impl ;
    public final void rule__ExceptionField__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8484:1: ( rule__ExceptionField__Group__2__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8485:2: rule__ExceptionField__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__ExceptionField__Group__2__Impl_in_rule__ExceptionField__Group__217032);
            rule__ExceptionField__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ExceptionField__Group__2"


    // $ANTLR start "rule__ExceptionField__Group__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8491:1: rule__ExceptionField__Group__2__Impl : ( ';' ) ;
    public final void rule__ExceptionField__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8495:1: ( ( ';' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8496:1: ( ';' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8496:1: ( ';' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8497:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionFieldAccess().getSemicolonKeyword_2()); 
            }
            match(input,25,FOLLOW_25_in_rule__ExceptionField__Group__2__Impl17060); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionFieldAccess().getSemicolonKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ExceptionField__Group__2__Impl"


    // $ANTLR start "rule__Argument__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8516:1: rule__Argument__Group__0 : rule__Argument__Group__0__Impl rule__Argument__Group__1 ;
    public final void rule__Argument__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8520:1: ( rule__Argument__Group__0__Impl rule__Argument__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8521:2: rule__Argument__Group__0__Impl rule__Argument__Group__1
            {
            pushFollow(FOLLOW_rule__Argument__Group__0__Impl_in_rule__Argument__Group__017097);
            rule__Argument__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Argument__Group__1_in_rule__Argument__Group__017100);
            rule__Argument__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group__0"


    // $ANTLR start "rule__Argument__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8528:1: rule__Argument__Group__0__Impl : ( ( rule__Argument__Group_0__0 )? ) ;
    public final void rule__Argument__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8532:1: ( ( ( rule__Argument__Group_0__0 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8533:1: ( ( rule__Argument__Group_0__0 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8533:1: ( ( rule__Argument__Group_0__0 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8534:1: ( rule__Argument__Group_0__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getGroup_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8535:1: ( rule__Argument__Group_0__0 )?
            int alt62=2;
            int LA62_0 = input.LA(1);

            if ( (LA62_0==51) ) {
                alt62=1;
            }
            switch (alt62) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8535:2: rule__Argument__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__Argument__Group_0__0_in_rule__Argument__Group__0__Impl17127);
                    rule__Argument__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getGroup_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group__0__Impl"


    // $ANTLR start "rule__Argument__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8545:1: rule__Argument__Group__1 : rule__Argument__Group__1__Impl rule__Argument__Group__2 ;
    public final void rule__Argument__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8549:1: ( rule__Argument__Group__1__Impl rule__Argument__Group__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8550:2: rule__Argument__Group__1__Impl rule__Argument__Group__2
            {
            pushFollow(FOLLOW_rule__Argument__Group__1__Impl_in_rule__Argument__Group__117158);
            rule__Argument__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Argument__Group__2_in_rule__Argument__Group__117161);
            rule__Argument__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group__1"


    // $ANTLR start "rule__Argument__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8557:1: rule__Argument__Group__1__Impl : ( ( rule__Argument__InAssignment_1 )? ) ;
    public final void rule__Argument__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8561:1: ( ( ( rule__Argument__InAssignment_1 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8562:1: ( ( rule__Argument__InAssignment_1 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8562:1: ( ( rule__Argument__InAssignment_1 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8563:1: ( rule__Argument__InAssignment_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getInAssignment_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8564:1: ( rule__Argument__InAssignment_1 )?
            int alt63=2;
            int LA63_0 = input.LA(1);

            if ( (LA63_0==78) ) {
                alt63=1;
            }
            switch (alt63) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8564:2: rule__Argument__InAssignment_1
                    {
                    pushFollow(FOLLOW_rule__Argument__InAssignment_1_in_rule__Argument__Group__1__Impl17188);
                    rule__Argument__InAssignment_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getInAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group__1__Impl"


    // $ANTLR start "rule__Argument__Group__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8574:1: rule__Argument__Group__2 : rule__Argument__Group__2__Impl rule__Argument__Group__3 ;
    public final void rule__Argument__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8578:1: ( rule__Argument__Group__2__Impl rule__Argument__Group__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8579:2: rule__Argument__Group__2__Impl rule__Argument__Group__3
            {
            pushFollow(FOLLOW_rule__Argument__Group__2__Impl_in_rule__Argument__Group__217219);
            rule__Argument__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Argument__Group__3_in_rule__Argument__Group__217222);
            rule__Argument__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group__2"


    // $ANTLR start "rule__Argument__Group__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8586:1: rule__Argument__Group__2__Impl : ( ( rule__Argument__OptionalAssignment_2 )? ) ;
    public final void rule__Argument__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8590:1: ( ( ( rule__Argument__OptionalAssignment_2 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8591:1: ( ( rule__Argument__OptionalAssignment_2 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8591:1: ( ( rule__Argument__OptionalAssignment_2 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8592:1: ( rule__Argument__OptionalAssignment_2 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getOptionalAssignment_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8593:1: ( rule__Argument__OptionalAssignment_2 )?
            int alt64=2;
            int LA64_0 = input.LA(1);

            if ( (LA64_0==79) ) {
                alt64=1;
            }
            switch (alt64) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8593:2: rule__Argument__OptionalAssignment_2
                    {
                    pushFollow(FOLLOW_rule__Argument__OptionalAssignment_2_in_rule__Argument__Group__2__Impl17249);
                    rule__Argument__OptionalAssignment_2();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getOptionalAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group__2__Impl"


    // $ANTLR start "rule__Argument__Group__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8603:1: rule__Argument__Group__3 : rule__Argument__Group__3__Impl rule__Argument__Group__4 ;
    public final void rule__Argument__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8607:1: ( rule__Argument__Group__3__Impl rule__Argument__Group__4 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8608:2: rule__Argument__Group__3__Impl rule__Argument__Group__4
            {
            pushFollow(FOLLOW_rule__Argument__Group__3__Impl_in_rule__Argument__Group__317280);
            rule__Argument__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Argument__Group__4_in_rule__Argument__Group__317283);
            rule__Argument__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group__3"


    // $ANTLR start "rule__Argument__Group__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8615:1: rule__Argument__Group__3__Impl : ( ( rule__Argument__TypeAssignment_3 ) ) ;
    public final void rule__Argument__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8619:1: ( ( ( rule__Argument__TypeAssignment_3 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8620:1: ( ( rule__Argument__TypeAssignment_3 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8620:1: ( ( rule__Argument__TypeAssignment_3 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8621:1: ( rule__Argument__TypeAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getTypeAssignment_3()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8622:1: ( rule__Argument__TypeAssignment_3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8622:2: rule__Argument__TypeAssignment_3
            {
            pushFollow(FOLLOW_rule__Argument__TypeAssignment_3_in_rule__Argument__Group__3__Impl17310);
            rule__Argument__TypeAssignment_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getTypeAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group__3__Impl"


    // $ANTLR start "rule__Argument__Group__4"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8632:1: rule__Argument__Group__4 : rule__Argument__Group__4__Impl rule__Argument__Group__5 ;
    public final void rule__Argument__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8636:1: ( rule__Argument__Group__4__Impl rule__Argument__Group__5 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8637:2: rule__Argument__Group__4__Impl rule__Argument__Group__5
            {
            pushFollow(FOLLOW_rule__Argument__Group__4__Impl_in_rule__Argument__Group__417340);
            rule__Argument__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Argument__Group__5_in_rule__Argument__Group__417343);
            rule__Argument__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group__4"


    // $ANTLR start "rule__Argument__Group__4__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8644:1: rule__Argument__Group__4__Impl : ( ( rule__Argument__EllipsisAssignment_4 )? ) ;
    public final void rule__Argument__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8648:1: ( ( ( rule__Argument__EllipsisAssignment_4 )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8649:1: ( ( rule__Argument__EllipsisAssignment_4 )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8649:1: ( ( rule__Argument__EllipsisAssignment_4 )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8650:1: ( rule__Argument__EllipsisAssignment_4 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getEllipsisAssignment_4()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8651:1: ( rule__Argument__EllipsisAssignment_4 )?
            int alt65=2;
            int LA65_0 = input.LA(1);

            if ( (LA65_0==80) ) {
                alt65=1;
            }
            switch (alt65) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8651:2: rule__Argument__EllipsisAssignment_4
                    {
                    pushFollow(FOLLOW_rule__Argument__EllipsisAssignment_4_in_rule__Argument__Group__4__Impl17370);
                    rule__Argument__EllipsisAssignment_4();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getEllipsisAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group__4__Impl"


    // $ANTLR start "rule__Argument__Group__5"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8661:1: rule__Argument__Group__5 : rule__Argument__Group__5__Impl ;
    public final void rule__Argument__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8665:1: ( rule__Argument__Group__5__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8666:2: rule__Argument__Group__5__Impl
            {
            pushFollow(FOLLOW_rule__Argument__Group__5__Impl_in_rule__Argument__Group__517401);
            rule__Argument__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group__5"


    // $ANTLR start "rule__Argument__Group__5__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8672:1: rule__Argument__Group__5__Impl : ( ( rule__Argument__NameAssignment_5 ) ) ;
    public final void rule__Argument__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8676:1: ( ( ( rule__Argument__NameAssignment_5 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8677:1: ( ( rule__Argument__NameAssignment_5 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8677:1: ( ( rule__Argument__NameAssignment_5 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8678:1: ( rule__Argument__NameAssignment_5 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getNameAssignment_5()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8679:1: ( rule__Argument__NameAssignment_5 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8679:2: rule__Argument__NameAssignment_5
            {
            pushFollow(FOLLOW_rule__Argument__NameAssignment_5_in_rule__Argument__Group__5__Impl17428);
            rule__Argument__NameAssignment_5();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getNameAssignment_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group__5__Impl"


    // $ANTLR start "rule__Argument__Group_0__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8701:1: rule__Argument__Group_0__0 : rule__Argument__Group_0__0__Impl rule__Argument__Group_0__1 ;
    public final void rule__Argument__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8705:1: ( rule__Argument__Group_0__0__Impl rule__Argument__Group_0__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8706:2: rule__Argument__Group_0__0__Impl rule__Argument__Group_0__1
            {
            pushFollow(FOLLOW_rule__Argument__Group_0__0__Impl_in_rule__Argument__Group_0__017470);
            rule__Argument__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Argument__Group_0__1_in_rule__Argument__Group_0__017473);
            rule__Argument__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group_0__0"


    // $ANTLR start "rule__Argument__Group_0__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8713:1: rule__Argument__Group_0__0__Impl : ( '[' ) ;
    public final void rule__Argument__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8717:1: ( ( '[' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8718:1: ( '[' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8718:1: ( '[' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8719:1: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getLeftSquareBracketKeyword_0_0()); 
            }
            match(input,51,FOLLOW_51_in_rule__Argument__Group_0__0__Impl17501); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getLeftSquareBracketKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group_0__0__Impl"


    // $ANTLR start "rule__Argument__Group_0__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8732:1: rule__Argument__Group_0__1 : rule__Argument__Group_0__1__Impl rule__Argument__Group_0__2 ;
    public final void rule__Argument__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8736:1: ( rule__Argument__Group_0__1__Impl rule__Argument__Group_0__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8737:2: rule__Argument__Group_0__1__Impl rule__Argument__Group_0__2
            {
            pushFollow(FOLLOW_rule__Argument__Group_0__1__Impl_in_rule__Argument__Group_0__117532);
            rule__Argument__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Argument__Group_0__2_in_rule__Argument__Group_0__117535);
            rule__Argument__Group_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group_0__1"


    // $ANTLR start "rule__Argument__Group_0__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8744:1: rule__Argument__Group_0__1__Impl : ( ( rule__Argument__ExtendedAttributesAssignment_0_1 ) ) ;
    public final void rule__Argument__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8748:1: ( ( ( rule__Argument__ExtendedAttributesAssignment_0_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8749:1: ( ( rule__Argument__ExtendedAttributesAssignment_0_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8749:1: ( ( rule__Argument__ExtendedAttributesAssignment_0_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8750:1: ( rule__Argument__ExtendedAttributesAssignment_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getExtendedAttributesAssignment_0_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8751:1: ( rule__Argument__ExtendedAttributesAssignment_0_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8751:2: rule__Argument__ExtendedAttributesAssignment_0_1
            {
            pushFollow(FOLLOW_rule__Argument__ExtendedAttributesAssignment_0_1_in_rule__Argument__Group_0__1__Impl17562);
            rule__Argument__ExtendedAttributesAssignment_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getExtendedAttributesAssignment_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group_0__1__Impl"


    // $ANTLR start "rule__Argument__Group_0__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8761:1: rule__Argument__Group_0__2 : rule__Argument__Group_0__2__Impl rule__Argument__Group_0__3 ;
    public final void rule__Argument__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8765:1: ( rule__Argument__Group_0__2__Impl rule__Argument__Group_0__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8766:2: rule__Argument__Group_0__2__Impl rule__Argument__Group_0__3
            {
            pushFollow(FOLLOW_rule__Argument__Group_0__2__Impl_in_rule__Argument__Group_0__217592);
            rule__Argument__Group_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Argument__Group_0__3_in_rule__Argument__Group_0__217595);
            rule__Argument__Group_0__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group_0__2"


    // $ANTLR start "rule__Argument__Group_0__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8773:1: rule__Argument__Group_0__2__Impl : ( ( rule__Argument__Group_0_2__0 )* ) ;
    public final void rule__Argument__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8777:1: ( ( ( rule__Argument__Group_0_2__0 )* ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8778:1: ( ( rule__Argument__Group_0_2__0 )* )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8778:1: ( ( rule__Argument__Group_0_2__0 )* )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8779:1: ( rule__Argument__Group_0_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getGroup_0_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8780:1: ( rule__Argument__Group_0_2__0 )*
            loop66:
            do {
                int alt66=2;
                int LA66_0 = input.LA(1);

                if ( (LA66_0==33) ) {
                    alt66=1;
                }


                switch (alt66) {
            	case 1 :
            	    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8780:2: rule__Argument__Group_0_2__0
            	    {
            	    pushFollow(FOLLOW_rule__Argument__Group_0_2__0_in_rule__Argument__Group_0__2__Impl17622);
            	    rule__Argument__Group_0_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop66;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getGroup_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group_0__2__Impl"


    // $ANTLR start "rule__Argument__Group_0__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8790:1: rule__Argument__Group_0__3 : rule__Argument__Group_0__3__Impl ;
    public final void rule__Argument__Group_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8794:1: ( rule__Argument__Group_0__3__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8795:2: rule__Argument__Group_0__3__Impl
            {
            pushFollow(FOLLOW_rule__Argument__Group_0__3__Impl_in_rule__Argument__Group_0__317653);
            rule__Argument__Group_0__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group_0__3"


    // $ANTLR start "rule__Argument__Group_0__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8801:1: rule__Argument__Group_0__3__Impl : ( ']' ) ;
    public final void rule__Argument__Group_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8805:1: ( ( ']' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8806:1: ( ']' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8806:1: ( ']' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8807:1: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getRightSquareBracketKeyword_0_3()); 
            }
            match(input,52,FOLLOW_52_in_rule__Argument__Group_0__3__Impl17681); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getRightSquareBracketKeyword_0_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group_0__3__Impl"


    // $ANTLR start "rule__Argument__Group_0_2__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8828:1: rule__Argument__Group_0_2__0 : rule__Argument__Group_0_2__0__Impl rule__Argument__Group_0_2__1 ;
    public final void rule__Argument__Group_0_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8832:1: ( rule__Argument__Group_0_2__0__Impl rule__Argument__Group_0_2__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8833:2: rule__Argument__Group_0_2__0__Impl rule__Argument__Group_0_2__1
            {
            pushFollow(FOLLOW_rule__Argument__Group_0_2__0__Impl_in_rule__Argument__Group_0_2__017720);
            rule__Argument__Group_0_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Argument__Group_0_2__1_in_rule__Argument__Group_0_2__017723);
            rule__Argument__Group_0_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group_0_2__0"


    // $ANTLR start "rule__Argument__Group_0_2__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8840:1: rule__Argument__Group_0_2__0__Impl : ( ',' ) ;
    public final void rule__Argument__Group_0_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8844:1: ( ( ',' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8845:1: ( ',' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8845:1: ( ',' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8846:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getCommaKeyword_0_2_0()); 
            }
            match(input,33,FOLLOW_33_in_rule__Argument__Group_0_2__0__Impl17751); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getCommaKeyword_0_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group_0_2__0__Impl"


    // $ANTLR start "rule__Argument__Group_0_2__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8859:1: rule__Argument__Group_0_2__1 : rule__Argument__Group_0_2__1__Impl ;
    public final void rule__Argument__Group_0_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8863:1: ( rule__Argument__Group_0_2__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8864:2: rule__Argument__Group_0_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Argument__Group_0_2__1__Impl_in_rule__Argument__Group_0_2__117782);
            rule__Argument__Group_0_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group_0_2__1"


    // $ANTLR start "rule__Argument__Group_0_2__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8870:1: rule__Argument__Group_0_2__1__Impl : ( ( rule__Argument__ExtendedAttributesAssignment_0_2_1 ) ) ;
    public final void rule__Argument__Group_0_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8874:1: ( ( ( rule__Argument__ExtendedAttributesAssignment_0_2_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8875:1: ( ( rule__Argument__ExtendedAttributesAssignment_0_2_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8875:1: ( ( rule__Argument__ExtendedAttributesAssignment_0_2_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8876:1: ( rule__Argument__ExtendedAttributesAssignment_0_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getExtendedAttributesAssignment_0_2_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8877:1: ( rule__Argument__ExtendedAttributesAssignment_0_2_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8877:2: rule__Argument__ExtendedAttributesAssignment_0_2_1
            {
            pushFollow(FOLLOW_rule__Argument__ExtendedAttributesAssignment_0_2_1_in_rule__Argument__Group_0_2__1__Impl17809);
            rule__Argument__ExtendedAttributesAssignment_0_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getExtendedAttributesAssignment_0_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__Group_0_2__1__Impl"


    // $ANTLR start "rule__Const__Group__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8891:1: rule__Const__Group__0 : rule__Const__Group__0__Impl rule__Const__Group__1 ;
    public final void rule__Const__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8895:1: ( rule__Const__Group__0__Impl rule__Const__Group__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8896:2: rule__Const__Group__0__Impl rule__Const__Group__1
            {
            pushFollow(FOLLOW_rule__Const__Group__0__Impl_in_rule__Const__Group__017843);
            rule__Const__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Const__Group__1_in_rule__Const__Group__017846);
            rule__Const__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const__Group__0"


    // $ANTLR start "rule__Const__Group__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8903:1: rule__Const__Group__0__Impl : ( 'const' ) ;
    public final void rule__Const__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8907:1: ( ( 'const' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8908:1: ( 'const' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8908:1: ( 'const' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8909:1: 'const'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstAccess().getConstKeyword_0()); 
            }
            match(input,68,FOLLOW_68_in_rule__Const__Group__0__Impl17874); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstAccess().getConstKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const__Group__0__Impl"


    // $ANTLR start "rule__Const__Group__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8922:1: rule__Const__Group__1 : rule__Const__Group__1__Impl rule__Const__Group__2 ;
    public final void rule__Const__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8926:1: ( rule__Const__Group__1__Impl rule__Const__Group__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8927:2: rule__Const__Group__1__Impl rule__Const__Group__2
            {
            pushFollow(FOLLOW_rule__Const__Group__1__Impl_in_rule__Const__Group__117905);
            rule__Const__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Const__Group__2_in_rule__Const__Group__117908);
            rule__Const__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const__Group__1"


    // $ANTLR start "rule__Const__Group__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8934:1: rule__Const__Group__1__Impl : ( ( rule__Const__TypeAssignment_1 ) ) ;
    public final void rule__Const__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8938:1: ( ( ( rule__Const__TypeAssignment_1 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8939:1: ( ( rule__Const__TypeAssignment_1 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8939:1: ( ( rule__Const__TypeAssignment_1 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8940:1: ( rule__Const__TypeAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstAccess().getTypeAssignment_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8941:1: ( rule__Const__TypeAssignment_1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8941:2: rule__Const__TypeAssignment_1
            {
            pushFollow(FOLLOW_rule__Const__TypeAssignment_1_in_rule__Const__Group__1__Impl17935);
            rule__Const__TypeAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstAccess().getTypeAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const__Group__1__Impl"


    // $ANTLR start "rule__Const__Group__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8951:1: rule__Const__Group__2 : rule__Const__Group__2__Impl rule__Const__Group__3 ;
    public final void rule__Const__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8955:1: ( rule__Const__Group__2__Impl rule__Const__Group__3 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8956:2: rule__Const__Group__2__Impl rule__Const__Group__3
            {
            pushFollow(FOLLOW_rule__Const__Group__2__Impl_in_rule__Const__Group__217965);
            rule__Const__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Const__Group__3_in_rule__Const__Group__217968);
            rule__Const__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const__Group__2"


    // $ANTLR start "rule__Const__Group__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8963:1: rule__Const__Group__2__Impl : ( ( rule__Const__NameAssignment_2 ) ) ;
    public final void rule__Const__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8967:1: ( ( ( rule__Const__NameAssignment_2 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8968:1: ( ( rule__Const__NameAssignment_2 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8968:1: ( ( rule__Const__NameAssignment_2 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8969:1: ( rule__Const__NameAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstAccess().getNameAssignment_2()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8970:1: ( rule__Const__NameAssignment_2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8970:2: rule__Const__NameAssignment_2
            {
            pushFollow(FOLLOW_rule__Const__NameAssignment_2_in_rule__Const__Group__2__Impl17995);
            rule__Const__NameAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstAccess().getNameAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const__Group__2__Impl"


    // $ANTLR start "rule__Const__Group__3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8980:1: rule__Const__Group__3 : rule__Const__Group__3__Impl rule__Const__Group__4 ;
    public final void rule__Const__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8984:1: ( rule__Const__Group__3__Impl rule__Const__Group__4 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8985:2: rule__Const__Group__3__Impl rule__Const__Group__4
            {
            pushFollow(FOLLOW_rule__Const__Group__3__Impl_in_rule__Const__Group__318025);
            rule__Const__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Const__Group__4_in_rule__Const__Group__318028);
            rule__Const__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const__Group__3"


    // $ANTLR start "rule__Const__Group__3__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8992:1: rule__Const__Group__3__Impl : ( '=' ) ;
    public final void rule__Const__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8996:1: ( ( '=' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8997:1: ( '=' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8997:1: ( '=' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:8998:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstAccess().getEqualsSignKeyword_3()); 
            }
            match(input,35,FOLLOW_35_in_rule__Const__Group__3__Impl18056); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstAccess().getEqualsSignKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const__Group__3__Impl"


    // $ANTLR start "rule__Const__Group__4"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9011:1: rule__Const__Group__4 : rule__Const__Group__4__Impl rule__Const__Group__5 ;
    public final void rule__Const__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9015:1: ( rule__Const__Group__4__Impl rule__Const__Group__5 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9016:2: rule__Const__Group__4__Impl rule__Const__Group__5
            {
            pushFollow(FOLLOW_rule__Const__Group__4__Impl_in_rule__Const__Group__418087);
            rule__Const__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Const__Group__5_in_rule__Const__Group__418090);
            rule__Const__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const__Group__4"


    // $ANTLR start "rule__Const__Group__4__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9023:1: rule__Const__Group__4__Impl : ( ( rule__Const__ExprAssignment_4 ) ) ;
    public final void rule__Const__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9027:1: ( ( ( rule__Const__ExprAssignment_4 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9028:1: ( ( rule__Const__ExprAssignment_4 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9028:1: ( ( rule__Const__ExprAssignment_4 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9029:1: ( rule__Const__ExprAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstAccess().getExprAssignment_4()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9030:1: ( rule__Const__ExprAssignment_4 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9030:2: rule__Const__ExprAssignment_4
            {
            pushFollow(FOLLOW_rule__Const__ExprAssignment_4_in_rule__Const__Group__4__Impl18117);
            rule__Const__ExprAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstAccess().getExprAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const__Group__4__Impl"


    // $ANTLR start "rule__Const__Group__5"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9040:1: rule__Const__Group__5 : rule__Const__Group__5__Impl ;
    public final void rule__Const__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9044:1: ( rule__Const__Group__5__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9045:2: rule__Const__Group__5__Impl
            {
            pushFollow(FOLLOW_rule__Const__Group__5__Impl_in_rule__Const__Group__518147);
            rule__Const__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const__Group__5"


    // $ANTLR start "rule__Const__Group__5__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9051:1: rule__Const__Group__5__Impl : ( ';' ) ;
    public final void rule__Const__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9055:1: ( ( ';' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9056:1: ( ';' )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9056:1: ( ';' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9057:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstAccess().getSemicolonKeyword_5()); 
            }
            match(input,25,FOLLOW_25_in_rule__Const__Group__5__Impl18175); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstAccess().getSemicolonKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const__Group__5__Impl"


    // $ANTLR start "rule__ConstExpr__Group_0__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9082:1: rule__ConstExpr__Group_0__0 : rule__ConstExpr__Group_0__0__Impl rule__ConstExpr__Group_0__1 ;
    public final void rule__ConstExpr__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9086:1: ( rule__ConstExpr__Group_0__0__Impl rule__ConstExpr__Group_0__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9087:2: rule__ConstExpr__Group_0__0__Impl rule__ConstExpr__Group_0__1
            {
            pushFollow(FOLLOW_rule__ConstExpr__Group_0__0__Impl_in_rule__ConstExpr__Group_0__018218);
            rule__ConstExpr__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ConstExpr__Group_0__1_in_rule__ConstExpr__Group_0__018221);
            rule__ConstExpr__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConstExpr__Group_0__0"


    // $ANTLR start "rule__ConstExpr__Group_0__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9094:1: rule__ConstExpr__Group_0__0__Impl : ( () ) ;
    public final void rule__ConstExpr__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9098:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9099:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9099:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9100:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstExprAccess().getConstExprAction_0_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9101:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9103:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstExprAccess().getConstExprAction_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConstExpr__Group_0__0__Impl"


    // $ANTLR start "rule__ConstExpr__Group_0__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9113:1: rule__ConstExpr__Group_0__1 : rule__ConstExpr__Group_0__1__Impl ;
    public final void rule__ConstExpr__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9117:1: ( rule__ConstExpr__Group_0__1__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9118:2: rule__ConstExpr__Group_0__1__Impl
            {
            pushFollow(FOLLOW_rule__ConstExpr__Group_0__1__Impl_in_rule__ConstExpr__Group_0__118279);
            rule__ConstExpr__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConstExpr__Group_0__1"


    // $ANTLR start "rule__ConstExpr__Group_0__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9124:1: rule__ConstExpr__Group_0__1__Impl : ( RULE_STRING ) ;
    public final void rule__ConstExpr__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9128:1: ( ( RULE_STRING ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9129:1: ( RULE_STRING )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9129:1: ( RULE_STRING )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9130:1: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstExprAccess().getSTRINGTerminalRuleCall_0_1()); 
            }
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__ConstExpr__Group_0__1__Impl18306); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstExprAccess().getSTRINGTerminalRuleCall_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConstExpr__Group_0__1__Impl"


    // $ANTLR start "rule__ConstExpr__Group_1__0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9145:1: rule__ConstExpr__Group_1__0 : rule__ConstExpr__Group_1__0__Impl rule__ConstExpr__Group_1__1 ;
    public final void rule__ConstExpr__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9149:1: ( rule__ConstExpr__Group_1__0__Impl rule__ConstExpr__Group_1__1 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9150:2: rule__ConstExpr__Group_1__0__Impl rule__ConstExpr__Group_1__1
            {
            pushFollow(FOLLOW_rule__ConstExpr__Group_1__0__Impl_in_rule__ConstExpr__Group_1__018339);
            rule__ConstExpr__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ConstExpr__Group_1__1_in_rule__ConstExpr__Group_1__018342);
            rule__ConstExpr__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConstExpr__Group_1__0"


    // $ANTLR start "rule__ConstExpr__Group_1__0__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9157:1: rule__ConstExpr__Group_1__0__Impl : ( () ) ;
    public final void rule__ConstExpr__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9161:1: ( ( () ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9162:1: ( () )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9162:1: ( () )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9163:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstExprAccess().getConstExprAction_1_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9164:1: ()
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9166:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstExprAccess().getConstExprAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConstExpr__Group_1__0__Impl"


    // $ANTLR start "rule__ConstExpr__Group_1__1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9176:1: rule__ConstExpr__Group_1__1 : rule__ConstExpr__Group_1__1__Impl rule__ConstExpr__Group_1__2 ;
    public final void rule__ConstExpr__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9180:1: ( rule__ConstExpr__Group_1__1__Impl rule__ConstExpr__Group_1__2 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9181:2: rule__ConstExpr__Group_1__1__Impl rule__ConstExpr__Group_1__2
            {
            pushFollow(FOLLOW_rule__ConstExpr__Group_1__1__Impl_in_rule__ConstExpr__Group_1__118400);
            rule__ConstExpr__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ConstExpr__Group_1__2_in_rule__ConstExpr__Group_1__118403);
            rule__ConstExpr__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConstExpr__Group_1__1"


    // $ANTLR start "rule__ConstExpr__Group_1__1__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9188:1: rule__ConstExpr__Group_1__1__Impl : ( ( '0x' )? ) ;
    public final void rule__ConstExpr__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9192:1: ( ( ( '0x' )? ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9193:1: ( ( '0x' )? )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9193:1: ( ( '0x' )? )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9194:1: ( '0x' )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstExprAccess().getXKeyword_1_1()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9195:1: ( '0x' )?
            int alt67=2;
            int LA67_0 = input.LA(1);

            if ( (LA67_0==69) ) {
                alt67=1;
            }
            switch (alt67) {
                case 1 :
                    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9196:2: '0x'
                    {
                    match(input,69,FOLLOW_69_in_rule__ConstExpr__Group_1__1__Impl18432); if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstExprAccess().getXKeyword_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConstExpr__Group_1__1__Impl"


    // $ANTLR start "rule__ConstExpr__Group_1__2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9207:1: rule__ConstExpr__Group_1__2 : rule__ConstExpr__Group_1__2__Impl ;
    public final void rule__ConstExpr__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9211:1: ( rule__ConstExpr__Group_1__2__Impl )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9212:2: rule__ConstExpr__Group_1__2__Impl
            {
            pushFollow(FOLLOW_rule__ConstExpr__Group_1__2__Impl_in_rule__ConstExpr__Group_1__218465);
            rule__ConstExpr__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConstExpr__Group_1__2"


    // $ANTLR start "rule__ConstExpr__Group_1__2__Impl"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9218:1: rule__ConstExpr__Group_1__2__Impl : ( RULE_INT ) ;
    public final void rule__ConstExpr__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9222:1: ( ( RULE_INT ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9223:1: ( RULE_INT )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9223:1: ( RULE_INT )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9224:1: RULE_INT
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstExprAccess().getINTTerminalRuleCall_1_2()); 
            }
            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__ConstExpr__Group_1__2__Impl18492); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstExprAccess().getINTTerminalRuleCall_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConstExpr__Group_1__2__Impl"


    // $ANTLR start "rule__IDLDefinitions__ImportsAssignment_0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9242:1: rule__IDLDefinitions__ImportsAssignment_0 : ( ruleImport ) ;
    public final void rule__IDLDefinitions__ImportsAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9246:1: ( ( ruleImport ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9247:1: ( ruleImport )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9247:1: ( ruleImport )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9248:1: ruleImport
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIDLDefinitionsAccess().getImportsImportParserRuleCall_0_0()); 
            }
            pushFollow(FOLLOW_ruleImport_in_rule__IDLDefinitions__ImportsAssignment_018532);
            ruleImport();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getIDLDefinitionsAccess().getImportsImportParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__IDLDefinitions__ImportsAssignment_0"


    // $ANTLR start "rule__IDLDefinitions__DefinitionsAssignment_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9257:1: rule__IDLDefinitions__DefinitionsAssignment_1 : ( ruleAbstractDefinitions ) ;
    public final void rule__IDLDefinitions__DefinitionsAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9261:1: ( ( ruleAbstractDefinitions ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9262:1: ( ruleAbstractDefinitions )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9262:1: ( ruleAbstractDefinitions )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9263:1: ruleAbstractDefinitions
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIDLDefinitionsAccess().getDefinitionsAbstractDefinitionsParserRuleCall_1_0()); 
            }
            pushFollow(FOLLOW_ruleAbstractDefinitions_in_rule__IDLDefinitions__DefinitionsAssignment_118563);
            ruleAbstractDefinitions();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getIDLDefinitionsAccess().getDefinitionsAbstractDefinitionsParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__IDLDefinitions__DefinitionsAssignment_1"


    // $ANTLR start "rule__Import__ImportURIAssignment_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9272:1: rule__Import__ImportURIAssignment_1 : ( RULE_STRING ) ;
    public final void rule__Import__ImportURIAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9276:1: ( ( RULE_STRING ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9277:1: ( RULE_STRING )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9277:1: ( RULE_STRING )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9278:1: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getImportAccess().getImportURISTRINGTerminalRuleCall_1_0()); 
            }
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Import__ImportURIAssignment_118594); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getImportAccess().getImportURISTRINGTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Import__ImportURIAssignment_1"


    // $ANTLR start "rule__TypeDef__TypeAssignment_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9287:1: rule__TypeDef__TypeAssignment_1 : ( ruleTypeRef ) ;
    public final void rule__TypeDef__TypeAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9291:1: ( ( ruleTypeRef ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9292:1: ( ruleTypeRef )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9292:1: ( ruleTypeRef )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9293:1: ruleTypeRef
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeDefAccess().getTypeTypeRefParserRuleCall_1_0()); 
            }
            pushFollow(FOLLOW_ruleTypeRef_in_rule__TypeDef__TypeAssignment_118625);
            ruleTypeRef();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeDefAccess().getTypeTypeRefParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__TypeAssignment_1"


    // $ANTLR start "rule__TypeDef__NameAssignment_2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9302:1: rule__TypeDef__NameAssignment_2 : ( RULE_ID ) ;
    public final void rule__TypeDef__NameAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9306:1: ( ( RULE_ID ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9307:1: ( RULE_ID )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9307:1: ( RULE_ID )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9308:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeDefAccess().getNameIDTerminalRuleCall_2_0()); 
            }
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__TypeDef__NameAssignment_218656); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeDefAccess().getNameIDTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__NameAssignment_2"


    // $ANTLR start "rule__TypeRef__IsArrayAssignment_0_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9317:1: rule__TypeRef__IsArrayAssignment_0_1 : ( ( '[]' ) ) ;
    public final void rule__TypeRef__IsArrayAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9321:1: ( ( ( '[]' ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9322:1: ( ( '[]' ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9322:1: ( ( '[]' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9323:1: ( '[]' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeRefAccess().getIsArrayLeftSquareBracketRightSquareBracketKeyword_0_1_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9324:1: ( '[]' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9325:1: '[]'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeRefAccess().getIsArrayLeftSquareBracketRightSquareBracketKeyword_0_1_0()); 
            }
            match(input,70,FOLLOW_70_in_rule__TypeRef__IsArrayAssignment_0_118692); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeRefAccess().getIsArrayLeftSquareBracketRightSquareBracketKeyword_0_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeRefAccess().getIsArrayLeftSquareBracketRightSquareBracketKeyword_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeRef__IsArrayAssignment_0_1"


    // $ANTLR start "rule__TypeRef__IsArrayAssignment_1_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9340:1: rule__TypeRef__IsArrayAssignment_1_1 : ( ( '[]' ) ) ;
    public final void rule__TypeRef__IsArrayAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9344:1: ( ( ( '[]' ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9345:1: ( ( '[]' ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9345:1: ( ( '[]' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9346:1: ( '[]' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeRefAccess().getIsArrayLeftSquareBracketRightSquareBracketKeyword_1_1_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9347:1: ( '[]' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9348:1: '[]'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeRefAccess().getIsArrayLeftSquareBracketRightSquareBracketKeyword_1_1_0()); 
            }
            match(input,70,FOLLOW_70_in_rule__TypeRef__IsArrayAssignment_1_118736); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeRefAccess().getIsArrayLeftSquareBracketRightSquareBracketKeyword_1_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeRefAccess().getIsArrayLeftSquareBracketRightSquareBracketKeyword_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeRef__IsArrayAssignment_1_1"


    // $ANTLR start "rule__TypeRef__IsArrayAssignment_2_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9363:1: rule__TypeRef__IsArrayAssignment_2_1 : ( ( '[]' ) ) ;
    public final void rule__TypeRef__IsArrayAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9367:1: ( ( ( '[]' ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9368:1: ( ( '[]' ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9368:1: ( ( '[]' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9369:1: ( '[]' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeRefAccess().getIsArrayLeftSquareBracketRightSquareBracketKeyword_2_1_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9370:1: ( '[]' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9371:1: '[]'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeRefAccess().getIsArrayLeftSquareBracketRightSquareBracketKeyword_2_1_0()); 
            }
            match(input,70,FOLLOW_70_in_rule__TypeRef__IsArrayAssignment_2_118780); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeRefAccess().getIsArrayLeftSquareBracketRightSquareBracketKeyword_2_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeRefAccess().getIsArrayLeftSquareBracketRightSquareBracketKeyword_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeRef__IsArrayAssignment_2_1"


    // $ANTLR start "rule__UserTypeRef__TypeAssignment"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9386:1: rule__UserTypeRef__TypeAssignment : ( ( ruleScopedName ) ) ;
    public final void rule__UserTypeRef__TypeAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9390:1: ( ( ( ruleScopedName ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9391:1: ( ( ruleScopedName ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9391:1: ( ( ruleScopedName ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9392:1: ( ruleScopedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUserTypeRefAccess().getTypeTypesCrossReference_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9393:1: ( ruleScopedName )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9394:1: ruleScopedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUserTypeRefAccess().getTypeTypesScopedNameParserRuleCall_0_1()); 
            }
            pushFollow(FOLLOW_ruleScopedName_in_rule__UserTypeRef__TypeAssignment18823);
            ruleScopedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUserTypeRefAccess().getTypeTypesScopedNameParserRuleCall_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getUserTypeRefAccess().getTypeTypesCrossReference_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UserTypeRef__TypeAssignment"


    // $ANTLR start "rule__PrimitiveTypeRef__UnsignedAssignment_0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9405:1: rule__PrimitiveTypeRef__UnsignedAssignment_0 : ( ( 'unsigned' ) ) ;
    public final void rule__PrimitiveTypeRef__UnsignedAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9409:1: ( ( ( 'unsigned' ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9410:1: ( ( 'unsigned' ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9410:1: ( ( 'unsigned' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9411:1: ( 'unsigned' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimitiveTypeRefAccess().getUnsignedUnsignedKeyword_0_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9412:1: ( 'unsigned' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9413:1: 'unsigned'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimitiveTypeRefAccess().getUnsignedUnsignedKeyword_0_0()); 
            }
            match(input,71,FOLLOW_71_in_rule__PrimitiveTypeRef__UnsignedAssignment_018863); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimitiveTypeRefAccess().getUnsignedUnsignedKeyword_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimitiveTypeRefAccess().getUnsignedUnsignedKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PrimitiveTypeRef__UnsignedAssignment_0"


    // $ANTLR start "rule__PrimitiveTypeRef__NameAssignment_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9428:1: rule__PrimitiveTypeRef__NameAssignment_1 : ( ( rule__PrimitiveTypeRef__NameAlternatives_1_0 ) ) ;
    public final void rule__PrimitiveTypeRef__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9432:1: ( ( ( rule__PrimitiveTypeRef__NameAlternatives_1_0 ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9433:1: ( ( rule__PrimitiveTypeRef__NameAlternatives_1_0 ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9433:1: ( ( rule__PrimitiveTypeRef__NameAlternatives_1_0 ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9434:1: ( rule__PrimitiveTypeRef__NameAlternatives_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimitiveTypeRefAccess().getNameAlternatives_1_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9435:1: ( rule__PrimitiveTypeRef__NameAlternatives_1_0 )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9435:2: rule__PrimitiveTypeRef__NameAlternatives_1_0
            {
            pushFollow(FOLLOW_rule__PrimitiveTypeRef__NameAlternatives_1_0_in_rule__PrimitiveTypeRef__NameAssignment_118902);
            rule__PrimitiveTypeRef__NameAlternatives_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimitiveTypeRefAccess().getNameAlternatives_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PrimitiveTypeRef__NameAssignment_1"


    // $ANTLR start "rule__PrimitiveTypeRef__NullableAssignment_2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9444:1: rule__PrimitiveTypeRef__NullableAssignment_2 : ( ( '?' ) ) ;
    public final void rule__PrimitiveTypeRef__NullableAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9448:1: ( ( ( '?' ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9449:1: ( ( '?' ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9449:1: ( ( '?' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9450:1: ( '?' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimitiveTypeRefAccess().getNullableQuestionMarkKeyword_2_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9451:1: ( '?' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9452:1: '?'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimitiveTypeRefAccess().getNullableQuestionMarkKeyword_2_0()); 
            }
            match(input,72,FOLLOW_72_in_rule__PrimitiveTypeRef__NullableAssignment_218940); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimitiveTypeRefAccess().getNullableQuestionMarkKeyword_2_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimitiveTypeRefAccess().getNullableQuestionMarkKeyword_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PrimitiveTypeRef__NullableAssignment_2"


    // $ANTLR start "rule__SequenceType__TypeAssignment_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9467:1: rule__SequenceType__TypeAssignment_1 : ( ruleTypeRef ) ;
    public final void rule__SequenceType__TypeAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9471:1: ( ( ruleTypeRef ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9472:1: ( ruleTypeRef )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9472:1: ( ruleTypeRef )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9473:1: ruleTypeRef
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequenceTypeAccess().getTypeTypeRefParserRuleCall_1_0()); 
            }
            pushFollow(FOLLOW_ruleTypeRef_in_rule__SequenceType__TypeAssignment_118979);
            ruleTypeRef();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequenceTypeAccess().getTypeTypeRefParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SequenceType__TypeAssignment_1"


    // $ANTLR start "rule__SequenceType__NullableAssignment_3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9482:1: rule__SequenceType__NullableAssignment_3 : ( ( '?' ) ) ;
    public final void rule__SequenceType__NullableAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9486:1: ( ( ( '?' ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9487:1: ( ( '?' ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9487:1: ( ( '?' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9488:1: ( '?' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequenceTypeAccess().getNullableQuestionMarkKeyword_3_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9489:1: ( '?' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9490:1: '?'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequenceTypeAccess().getNullableQuestionMarkKeyword_3_0()); 
            }
            match(input,72,FOLLOW_72_in_rule__SequenceType__NullableAssignment_319015); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequenceTypeAccess().getNullableQuestionMarkKeyword_3_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequenceTypeAccess().getNullableQuestionMarkKeyword_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SequenceType__NullableAssignment_3"


    // $ANTLR start "rule__Constructor__ArgumentsAssignment_2_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9506:1: rule__Constructor__ArgumentsAssignment_2_1 : ( ruleArgument ) ;
    public final void rule__Constructor__ArgumentsAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9510:1: ( ( ruleArgument ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9511:1: ( ruleArgument )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9511:1: ( ruleArgument )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9512:1: ruleArgument
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstructorAccess().getArgumentsArgumentParserRuleCall_2_1_0()); 
            }
            pushFollow(FOLLOW_ruleArgument_in_rule__Constructor__ArgumentsAssignment_2_119055);
            ruleArgument();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstructorAccess().getArgumentsArgumentParserRuleCall_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__ArgumentsAssignment_2_1"


    // $ANTLR start "rule__Constructor__ArgumentsAssignment_2_2_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9521:1: rule__Constructor__ArgumentsAssignment_2_2_1 : ( ruleArgument ) ;
    public final void rule__Constructor__ArgumentsAssignment_2_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9525:1: ( ( ruleArgument ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9526:1: ( ruleArgument )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9526:1: ( ruleArgument )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9527:1: ruleArgument
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstructorAccess().getArgumentsArgumentParserRuleCall_2_2_1_0()); 
            }
            pushFollow(FOLLOW_ruleArgument_in_rule__Constructor__ArgumentsAssignment_2_2_119086);
            ruleArgument();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstructorAccess().getArgumentsArgumentParserRuleCall_2_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constructor__ArgumentsAssignment_2_2_1"


    // $ANTLR start "rule__NamedConstructor__NameAssignment_3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9536:1: rule__NamedConstructor__NameAssignment_3 : ( RULE_ID ) ;
    public final void rule__NamedConstructor__NameAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9540:1: ( ( RULE_ID ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9541:1: ( RULE_ID )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9541:1: ( RULE_ID )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9542:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamedConstructorAccess().getNameIDTerminalRuleCall_3_0()); 
            }
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__NamedConstructor__NameAssignment_319117); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamedConstructorAccess().getNameIDTerminalRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__NameAssignment_3"


    // $ANTLR start "rule__NamedConstructor__ArgumentsAssignment_4_1_0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9551:1: rule__NamedConstructor__ArgumentsAssignment_4_1_0 : ( ruleArgument ) ;
    public final void rule__NamedConstructor__ArgumentsAssignment_4_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9555:1: ( ( ruleArgument ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9556:1: ( ruleArgument )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9556:1: ( ruleArgument )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9557:1: ruleArgument
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamedConstructorAccess().getArgumentsArgumentParserRuleCall_4_1_0_0()); 
            }
            pushFollow(FOLLOW_ruleArgument_in_rule__NamedConstructor__ArgumentsAssignment_4_1_019148);
            ruleArgument();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamedConstructorAccess().getArgumentsArgumentParserRuleCall_4_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__ArgumentsAssignment_4_1_0"


    // $ANTLR start "rule__NamedConstructor__ArgumentsAssignment_4_1_1_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9566:1: rule__NamedConstructor__ArgumentsAssignment_4_1_1_1 : ( ruleArgument ) ;
    public final void rule__NamedConstructor__ArgumentsAssignment_4_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9570:1: ( ( ruleArgument ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9571:1: ( ruleArgument )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9571:1: ( ruleArgument )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9572:1: ruleArgument
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNamedConstructorAccess().getArgumentsArgumentParserRuleCall_4_1_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleArgument_in_rule__NamedConstructor__ArgumentsAssignment_4_1_1_119179);
            ruleArgument();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNamedConstructorAccess().getArgumentsArgumentParserRuleCall_4_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NamedConstructor__ArgumentsAssignment_4_1_1_1"


    // $ANTLR start "rule__Callback__FunctionOnlyAssignment_1_2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9581:1: rule__Callback__FunctionOnlyAssignment_1_2 : ( ( 'FunctionOnly' ) ) ;
    public final void rule__Callback__FunctionOnlyAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9585:1: ( ( ( 'FunctionOnly' ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9586:1: ( ( 'FunctionOnly' ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9586:1: ( ( 'FunctionOnly' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9587:1: ( 'FunctionOnly' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCallbackAccess().getFunctionOnlyFunctionOnlyKeyword_1_2_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9588:1: ( 'FunctionOnly' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9589:1: 'FunctionOnly'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCallbackAccess().getFunctionOnlyFunctionOnlyKeyword_1_2_0()); 
            }
            match(input,73,FOLLOW_73_in_rule__Callback__FunctionOnlyAssignment_1_219215); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCallbackAccess().getFunctionOnlyFunctionOnlyKeyword_1_2_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCallbackAccess().getFunctionOnlyFunctionOnlyKeyword_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Callback__FunctionOnlyAssignment_1_2"


    // $ANTLR start "rule__Callback__PropertyOnlyAssignment_2_2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9604:1: rule__Callback__PropertyOnlyAssignment_2_2 : ( ( 'PropertyOnly' ) ) ;
    public final void rule__Callback__PropertyOnlyAssignment_2_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9608:1: ( ( ( 'PropertyOnly' ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9609:1: ( ( 'PropertyOnly' ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9609:1: ( ( 'PropertyOnly' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9610:1: ( 'PropertyOnly' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCallbackAccess().getPropertyOnlyPropertyOnlyKeyword_2_2_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9611:1: ( 'PropertyOnly' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9612:1: 'PropertyOnly'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCallbackAccess().getPropertyOnlyPropertyOnlyKeyword_2_2_0()); 
            }
            match(input,74,FOLLOW_74_in_rule__Callback__PropertyOnlyAssignment_2_219259); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCallbackAccess().getPropertyOnlyPropertyOnlyKeyword_2_2_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCallbackAccess().getPropertyOnlyPropertyOnlyKeyword_2_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Callback__PropertyOnlyAssignment_2_2"


    // $ANTLR start "rule__PutForwards__TargetAssignment_2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9627:1: rule__PutForwards__TargetAssignment_2 : ( ( RULE_ID ) ) ;
    public final void rule__PutForwards__TargetAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9631:1: ( ( ( RULE_ID ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9632:1: ( ( RULE_ID ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9632:1: ( ( RULE_ID ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9633:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPutForwardsAccess().getTargetAttributeCrossReference_2_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9634:1: ( RULE_ID )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9635:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPutForwardsAccess().getTargetAttributeIDTerminalRuleCall_2_0_1()); 
            }
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__PutForwards__TargetAssignment_219302); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPutForwardsAccess().getTargetAttributeIDTerminalRuleCall_2_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPutForwardsAccess().getTargetAttributeCrossReference_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PutForwards__TargetAssignment_2"


    // $ANTLR start "rule__TreatUndefinedAs__AsEmptyStringAssignment_0_3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9646:1: rule__TreatUndefinedAs__AsEmptyStringAssignment_0_3 : ( ( 'EmptyString' ) ) ;
    public final void rule__TreatUndefinedAs__AsEmptyStringAssignment_0_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9650:1: ( ( ( 'EmptyString' ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9651:1: ( ( 'EmptyString' ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9651:1: ( ( 'EmptyString' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9652:1: ( 'EmptyString' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatUndefinedAsAccess().getAsEmptyStringEmptyStringKeyword_0_3_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9653:1: ( 'EmptyString' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9654:1: 'EmptyString'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatUndefinedAsAccess().getAsEmptyStringEmptyStringKeyword_0_3_0()); 
            }
            match(input,41,FOLLOW_41_in_rule__TreatUndefinedAs__AsEmptyStringAssignment_0_319342); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatUndefinedAsAccess().getAsEmptyStringEmptyStringKeyword_0_3_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatUndefinedAsAccess().getAsEmptyStringEmptyStringKeyword_0_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatUndefinedAs__AsEmptyStringAssignment_0_3"


    // $ANTLR start "rule__TreatUndefinedAs__AsNullAssignment_1_3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9669:1: rule__TreatUndefinedAs__AsNullAssignment_1_3 : ( ( 'null' ) ) ;
    public final void rule__TreatUndefinedAs__AsNullAssignment_1_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9673:1: ( ( ( 'null' ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9674:1: ( ( 'null' ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9674:1: ( ( 'null' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9675:1: ( 'null' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatUndefinedAsAccess().getAsNullNullKeyword_1_3_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9676:1: ( 'null' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9677:1: 'null'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTreatUndefinedAsAccess().getAsNullNullKeyword_1_3_0()); 
            }
            match(input,75,FOLLOW_75_in_rule__TreatUndefinedAs__AsNullAssignment_1_319386); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatUndefinedAsAccess().getAsNullNullKeyword_1_3_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTreatUndefinedAsAccess().getAsNullNullKeyword_1_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TreatUndefinedAs__AsNullAssignment_1_3"


    // $ANTLR start "rule__ImplementStatement__SourceAssignment_0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9692:1: rule__ImplementStatement__SourceAssignment_0 : ( ( ruleScopedName ) ) ;
    public final void rule__ImplementStatement__SourceAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9696:1: ( ( ( ruleScopedName ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9697:1: ( ( ruleScopedName ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9697:1: ( ( ruleScopedName ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9698:1: ( ruleScopedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getImplementStatementAccess().getSourceInterfaceCrossReference_0_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9699:1: ( ruleScopedName )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9700:1: ruleScopedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getImplementStatementAccess().getSourceInterfaceScopedNameParserRuleCall_0_0_1()); 
            }
            pushFollow(FOLLOW_ruleScopedName_in_rule__ImplementStatement__SourceAssignment_019429);
            ruleScopedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getImplementStatementAccess().getSourceInterfaceScopedNameParserRuleCall_0_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getImplementStatementAccess().getSourceInterfaceCrossReference_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ImplementStatement__SourceAssignment_0"


    // $ANTLR start "rule__ImplementStatement__TargetAssignment_2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9711:1: rule__ImplementStatement__TargetAssignment_2 : ( ( ruleScopedName ) ) ;
    public final void rule__ImplementStatement__TargetAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9715:1: ( ( ( ruleScopedName ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9716:1: ( ( ruleScopedName ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9716:1: ( ( ruleScopedName ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9717:1: ( ruleScopedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getImplementStatementAccess().getTargetInterfaceCrossReference_2_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9718:1: ( ruleScopedName )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9719:1: ruleScopedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getImplementStatementAccess().getTargetInterfaceScopedNameParserRuleCall_2_0_1()); 
            }
            pushFollow(FOLLOW_ruleScopedName_in_rule__ImplementStatement__TargetAssignment_219468);
            ruleScopedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getImplementStatementAccess().getTargetInterfaceScopedNameParserRuleCall_2_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getImplementStatementAccess().getTargetInterfaceCrossReference_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ImplementStatement__TargetAssignment_2"


    // $ANTLR start "rule__Module__ExtendedAttributesAssignment_0_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9730:1: rule__Module__ExtendedAttributesAssignment_0_1 : ( ruleModuleExtendedAttribute ) ;
    public final void rule__Module__ExtendedAttributesAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9734:1: ( ( ruleModuleExtendedAttribute ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9735:1: ( ruleModuleExtendedAttribute )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9735:1: ( ruleModuleExtendedAttribute )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9736:1: ruleModuleExtendedAttribute
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getExtendedAttributesModuleExtendedAttributeParserRuleCall_0_1_0()); 
            }
            pushFollow(FOLLOW_ruleModuleExtendedAttribute_in_rule__Module__ExtendedAttributesAssignment_0_119503);
            ruleModuleExtendedAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getExtendedAttributesModuleExtendedAttributeParserRuleCall_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__ExtendedAttributesAssignment_0_1"


    // $ANTLR start "rule__Module__ExtendedAttributesAssignment_0_2_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9745:1: rule__Module__ExtendedAttributesAssignment_0_2_1 : ( ruleModuleExtendedAttribute ) ;
    public final void rule__Module__ExtendedAttributesAssignment_0_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9749:1: ( ( ruleModuleExtendedAttribute ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9750:1: ( ruleModuleExtendedAttribute )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9750:1: ( ruleModuleExtendedAttribute )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9751:1: ruleModuleExtendedAttribute
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getExtendedAttributesModuleExtendedAttributeParserRuleCall_0_2_1_0()); 
            }
            pushFollow(FOLLOW_ruleModuleExtendedAttribute_in_rule__Module__ExtendedAttributesAssignment_0_2_119534);
            ruleModuleExtendedAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getExtendedAttributesModuleExtendedAttributeParserRuleCall_0_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__ExtendedAttributesAssignment_0_2_1"


    // $ANTLR start "rule__Module__NameAssignment_2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9760:1: rule__Module__NameAssignment_2 : ( ruleScopedName ) ;
    public final void rule__Module__NameAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9764:1: ( ( ruleScopedName ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9765:1: ( ruleScopedName )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9765:1: ( ruleScopedName )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9766:1: ruleScopedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getNameScopedNameParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleScopedName_in_rule__Module__NameAssignment_219565);
            ruleScopedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getNameScopedNameParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__NameAssignment_2"


    // $ANTLR start "rule__Module__DefinitionsAssignment_4"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9775:1: rule__Module__DefinitionsAssignment_4 : ( ruleAbstractDefinitions ) ;
    public final void rule__Module__DefinitionsAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9779:1: ( ( ruleAbstractDefinitions ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9780:1: ( ruleAbstractDefinitions )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9780:1: ( ruleAbstractDefinitions )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9781:1: ruleAbstractDefinitions
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getDefinitionsAbstractDefinitionsParserRuleCall_4_0()); 
            }
            pushFollow(FOLLOW_ruleAbstractDefinitions_in_rule__Module__DefinitionsAssignment_419596);
            ruleAbstractDefinitions();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getDefinitionsAbstractDefinitionsParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__DefinitionsAssignment_4"


    // $ANTLR start "rule__Prefix__ValueAssignment_2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9790:1: rule__Prefix__ValueAssignment_2 : ( ruleScopedName ) ;
    public final void rule__Prefix__ValueAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9794:1: ( ( ruleScopedName ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9795:1: ( ruleScopedName )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9795:1: ( ruleScopedName )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9796:1: ruleScopedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrefixAccess().getValueScopedNameParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleScopedName_in_rule__Prefix__ValueAssignment_219627);
            ruleScopedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrefixAccess().getValueScopedNameParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Prefix__ValueAssignment_2"


    // $ANTLR start "rule__Interface__ExtendedAttributesAssignment_0_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9805:1: rule__Interface__ExtendedAttributesAssignment_0_1 : ( ruleInterfaceExtendedAttribute ) ;
    public final void rule__Interface__ExtendedAttributesAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9809:1: ( ( ruleInterfaceExtendedAttribute ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9810:1: ( ruleInterfaceExtendedAttribute )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9810:1: ( ruleInterfaceExtendedAttribute )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9811:1: ruleInterfaceExtendedAttribute
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getExtendedAttributesInterfaceExtendedAttributeParserRuleCall_0_1_0()); 
            }
            pushFollow(FOLLOW_ruleInterfaceExtendedAttribute_in_rule__Interface__ExtendedAttributesAssignment_0_119658);
            ruleInterfaceExtendedAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getExtendedAttributesInterfaceExtendedAttributeParserRuleCall_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__ExtendedAttributesAssignment_0_1"


    // $ANTLR start "rule__Interface__ExtendedAttributeAssignment_0_2_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9820:1: rule__Interface__ExtendedAttributeAssignment_0_2_1 : ( ruleInterfaceExtendedAttribute ) ;
    public final void rule__Interface__ExtendedAttributeAssignment_0_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9824:1: ( ( ruleInterfaceExtendedAttribute ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9825:1: ( ruleInterfaceExtendedAttribute )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9825:1: ( ruleInterfaceExtendedAttribute )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9826:1: ruleInterfaceExtendedAttribute
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getExtendedAttributeInterfaceExtendedAttributeParserRuleCall_0_2_1_0()); 
            }
            pushFollow(FOLLOW_ruleInterfaceExtendedAttribute_in_rule__Interface__ExtendedAttributeAssignment_0_2_119689);
            ruleInterfaceExtendedAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getExtendedAttributeInterfaceExtendedAttributeParserRuleCall_0_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__ExtendedAttributeAssignment_0_2_1"


    // $ANTLR start "rule__Interface__NameAssignment_2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9835:1: rule__Interface__NameAssignment_2 : ( RULE_ID ) ;
    public final void rule__Interface__NameAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9839:1: ( ( RULE_ID ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9840:1: ( RULE_ID )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9840:1: ( RULE_ID )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9841:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getNameIDTerminalRuleCall_2_0()); 
            }
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Interface__NameAssignment_219720); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getNameIDTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__NameAssignment_2"


    // $ANTLR start "rule__Interface__SuperTypeAssignment_3_0_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9850:1: rule__Interface__SuperTypeAssignment_3_0_1 : ( ( ruleScopedName ) ) ;
    public final void rule__Interface__SuperTypeAssignment_3_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9854:1: ( ( ( ruleScopedName ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9855:1: ( ( ruleScopedName ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9855:1: ( ( ruleScopedName ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9856:1: ( ruleScopedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getSuperTypeInterfaceCrossReference_3_0_1_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9857:1: ( ruleScopedName )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9858:1: ruleScopedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getSuperTypeInterfaceScopedNameParserRuleCall_3_0_1_0_1()); 
            }
            pushFollow(FOLLOW_ruleScopedName_in_rule__Interface__SuperTypeAssignment_3_0_119755);
            ruleScopedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getSuperTypeInterfaceScopedNameParserRuleCall_3_0_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getSuperTypeInterfaceCrossReference_3_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__SuperTypeAssignment_3_0_1"


    // $ANTLR start "rule__Interface__SuperTypeAssignment_3_1_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9869:1: rule__Interface__SuperTypeAssignment_3_1_1 : ( ( ruleScopedName ) ) ;
    public final void rule__Interface__SuperTypeAssignment_3_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9873:1: ( ( ( ruleScopedName ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9874:1: ( ( ruleScopedName ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9874:1: ( ( ruleScopedName ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9875:1: ( ruleScopedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getSuperTypeInterfaceCrossReference_3_1_1_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9876:1: ( ruleScopedName )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9877:1: ruleScopedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getSuperTypeInterfaceScopedNameParserRuleCall_3_1_1_0_1()); 
            }
            pushFollow(FOLLOW_ruleScopedName_in_rule__Interface__SuperTypeAssignment_3_1_119794);
            ruleScopedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getSuperTypeInterfaceScopedNameParserRuleCall_3_1_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getSuperTypeInterfaceCrossReference_3_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__SuperTypeAssignment_3_1_1"


    // $ANTLR start "rule__Interface__MembersAssignment_4_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9888:1: rule__Interface__MembersAssignment_4_1 : ( ruleInterfaceMember ) ;
    public final void rule__Interface__MembersAssignment_4_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9892:1: ( ( ruleInterfaceMember ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9893:1: ( ruleInterfaceMember )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9893:1: ( ruleInterfaceMember )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9894:1: ruleInterfaceMember
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterfaceAccess().getMembersInterfaceMemberParserRuleCall_4_1_0()); 
            }
            pushFollow(FOLLOW_ruleInterfaceMember_in_rule__Interface__MembersAssignment_4_119829);
            ruleInterfaceMember();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterfaceAccess().getMembersInterfaceMemberParserRuleCall_4_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__MembersAssignment_4_1"


    // $ANTLR start "rule__Operation__ExtendedAttributesAssignment_0_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9903:1: rule__Operation__ExtendedAttributesAssignment_0_1 : ( ruleOperationExtendedAttribute ) ;
    public final void rule__Operation__ExtendedAttributesAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9907:1: ( ( ruleOperationExtendedAttribute ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9908:1: ( ruleOperationExtendedAttribute )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9908:1: ( ruleOperationExtendedAttribute )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9909:1: ruleOperationExtendedAttribute
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getExtendedAttributesOperationExtendedAttributeParserRuleCall_0_1_0()); 
            }
            pushFollow(FOLLOW_ruleOperationExtendedAttribute_in_rule__Operation__ExtendedAttributesAssignment_0_119860);
            ruleOperationExtendedAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getExtendedAttributesOperationExtendedAttributeParserRuleCall_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__ExtendedAttributesAssignment_0_1"


    // $ANTLR start "rule__Operation__ExtendedAttributesAssignment_0_2_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9918:1: rule__Operation__ExtendedAttributesAssignment_0_2_1 : ( ruleOperationExtendedAttribute ) ;
    public final void rule__Operation__ExtendedAttributesAssignment_0_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9922:1: ( ( ruleOperationExtendedAttribute ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9923:1: ( ruleOperationExtendedAttribute )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9923:1: ( ruleOperationExtendedAttribute )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9924:1: ruleOperationExtendedAttribute
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getExtendedAttributesOperationExtendedAttributeParserRuleCall_0_2_1_0()); 
            }
            pushFollow(FOLLOW_ruleOperationExtendedAttribute_in_rule__Operation__ExtendedAttributesAssignment_0_2_119891);
            ruleOperationExtendedAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getExtendedAttributesOperationExtendedAttributeParserRuleCall_0_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__ExtendedAttributesAssignment_0_2_1"


    // $ANTLR start "rule__Operation__StringifierAssignment_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9933:1: rule__Operation__StringifierAssignment_1 : ( ( 'stringifier' ) ) ;
    public final void rule__Operation__StringifierAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9937:1: ( ( ( 'stringifier' ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9938:1: ( ( 'stringifier' ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9938:1: ( ( 'stringifier' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9939:1: ( 'stringifier' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getStringifierStringifierKeyword_1_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9940:1: ( 'stringifier' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9941:1: 'stringifier'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getStringifierStringifierKeyword_1_0()); 
            }
            match(input,76,FOLLOW_76_in_rule__Operation__StringifierAssignment_119927); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getStringifierStringifierKeyword_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getStringifierStringifierKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__StringifierAssignment_1"


    // $ANTLR start "rule__Operation__OmittableAssignment_2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9956:1: rule__Operation__OmittableAssignment_2 : ( ( 'omittable' ) ) ;
    public final void rule__Operation__OmittableAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9960:1: ( ( ( 'omittable' ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9961:1: ( ( 'omittable' ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9961:1: ( ( 'omittable' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9962:1: ( 'omittable' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getOmittableOmittableKeyword_2_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9963:1: ( 'omittable' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9964:1: 'omittable'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getOmittableOmittableKeyword_2_0()); 
            }
            match(input,77,FOLLOW_77_in_rule__Operation__OmittableAssignment_219971); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getOmittableOmittableKeyword_2_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getOmittableOmittableKeyword_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__OmittableAssignment_2"


    // $ANTLR start "rule__Operation__SpecialsAssignment_3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9979:1: rule__Operation__SpecialsAssignment_3 : ( ruleOperationSpecial ) ;
    public final void rule__Operation__SpecialsAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9983:1: ( ( ruleOperationSpecial ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9984:1: ( ruleOperationSpecial )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9984:1: ( ruleOperationSpecial )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9985:1: ruleOperationSpecial
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getSpecialsOperationSpecialParserRuleCall_3_0()); 
            }
            pushFollow(FOLLOW_ruleOperationSpecial_in_rule__Operation__SpecialsAssignment_320010);
            ruleOperationSpecial();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getSpecialsOperationSpecialParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__SpecialsAssignment_3"


    // $ANTLR start "rule__Operation__ReturnAssignment_4"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9994:1: rule__Operation__ReturnAssignment_4 : ( ruleTypeRef ) ;
    public final void rule__Operation__ReturnAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9998:1: ( ( ruleTypeRef ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9999:1: ( ruleTypeRef )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:9999:1: ( ruleTypeRef )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10000:1: ruleTypeRef
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getReturnTypeRefParserRuleCall_4_0()); 
            }
            pushFollow(FOLLOW_ruleTypeRef_in_rule__Operation__ReturnAssignment_420041);
            ruleTypeRef();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getReturnTypeRefParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__ReturnAssignment_4"


    // $ANTLR start "rule__Operation__NameAssignment_5"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10009:1: rule__Operation__NameAssignment_5 : ( RULE_ID ) ;
    public final void rule__Operation__NameAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10013:1: ( ( RULE_ID ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10014:1: ( RULE_ID )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10014:1: ( RULE_ID )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10015:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getNameIDTerminalRuleCall_5_0()); 
            }
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Operation__NameAssignment_520072); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getNameIDTerminalRuleCall_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__NameAssignment_5"


    // $ANTLR start "rule__Operation__ArgumentsAssignment_7_0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10024:1: rule__Operation__ArgumentsAssignment_7_0 : ( ruleArgument ) ;
    public final void rule__Operation__ArgumentsAssignment_7_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10028:1: ( ( ruleArgument ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10029:1: ( ruleArgument )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10029:1: ( ruleArgument )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10030:1: ruleArgument
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getArgumentsArgumentParserRuleCall_7_0_0()); 
            }
            pushFollow(FOLLOW_ruleArgument_in_rule__Operation__ArgumentsAssignment_7_020103);
            ruleArgument();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getArgumentsArgumentParserRuleCall_7_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__ArgumentsAssignment_7_0"


    // $ANTLR start "rule__Operation__ArgumentsAssignment_7_1_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10039:1: rule__Operation__ArgumentsAssignment_7_1_1 : ( ruleArgument ) ;
    public final void rule__Operation__ArgumentsAssignment_7_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10043:1: ( ( ruleArgument ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10044:1: ( ruleArgument )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10044:1: ( ruleArgument )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10045:1: ruleArgument
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getArgumentsArgumentParserRuleCall_7_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleArgument_in_rule__Operation__ArgumentsAssignment_7_1_120134);
            ruleArgument();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getArgumentsArgumentParserRuleCall_7_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__ArgumentsAssignment_7_1_1"


    // $ANTLR start "rule__Operation__RaisesAssignment_9_2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10054:1: rule__Operation__RaisesAssignment_9_2 : ( ( ruleScopedName ) ) ;
    public final void rule__Operation__RaisesAssignment_9_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10058:1: ( ( ( ruleScopedName ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10059:1: ( ( ruleScopedName ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10059:1: ( ( ruleScopedName ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10060:1: ( ruleScopedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getRaisesExceptionCrossReference_9_2_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10061:1: ( ruleScopedName )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10062:1: ruleScopedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getRaisesExceptionScopedNameParserRuleCall_9_2_0_1()); 
            }
            pushFollow(FOLLOW_ruleScopedName_in_rule__Operation__RaisesAssignment_9_220169);
            ruleScopedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getRaisesExceptionScopedNameParserRuleCall_9_2_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getRaisesExceptionCrossReference_9_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__RaisesAssignment_9_2"


    // $ANTLR start "rule__Operation__RaisesAssignment_9_3_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10073:1: rule__Operation__RaisesAssignment_9_3_1 : ( ( ruleScopedName ) ) ;
    public final void rule__Operation__RaisesAssignment_9_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10077:1: ( ( ( ruleScopedName ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10078:1: ( ( ruleScopedName ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10078:1: ( ( ruleScopedName ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10079:1: ( ruleScopedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getRaisesExceptionCrossReference_9_3_1_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10080:1: ( ruleScopedName )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10081:1: ruleScopedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOperationAccess().getRaisesExceptionScopedNameParserRuleCall_9_3_1_0_1()); 
            }
            pushFollow(FOLLOW_ruleScopedName_in_rule__Operation__RaisesAssignment_9_3_120208);
            ruleScopedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getRaisesExceptionScopedNameParserRuleCall_9_3_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOperationAccess().getRaisesExceptionCrossReference_9_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Operation__RaisesAssignment_9_3_1"


    // $ANTLR start "rule__Attribute__ExtendedAttributesAssignment_0_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10092:1: rule__Attribute__ExtendedAttributesAssignment_0_1 : ( ruleAttributeExtendedAttribute ) ;
    public final void rule__Attribute__ExtendedAttributesAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10096:1: ( ( ruleAttributeExtendedAttribute ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10097:1: ( ruleAttributeExtendedAttribute )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10097:1: ( ruleAttributeExtendedAttribute )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10098:1: ruleAttributeExtendedAttribute
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getExtendedAttributesAttributeExtendedAttributeParserRuleCall_0_1_0()); 
            }
            pushFollow(FOLLOW_ruleAttributeExtendedAttribute_in_rule__Attribute__ExtendedAttributesAssignment_0_120243);
            ruleAttributeExtendedAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getExtendedAttributesAttributeExtendedAttributeParserRuleCall_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__ExtendedAttributesAssignment_0_1"


    // $ANTLR start "rule__Attribute__ExtendedAttributesAssignment_0_2_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10107:1: rule__Attribute__ExtendedAttributesAssignment_0_2_1 : ( ruleAttributeExtendedAttribute ) ;
    public final void rule__Attribute__ExtendedAttributesAssignment_0_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10111:1: ( ( ruleAttributeExtendedAttribute ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10112:1: ( ruleAttributeExtendedAttribute )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10112:1: ( ruleAttributeExtendedAttribute )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10113:1: ruleAttributeExtendedAttribute
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getExtendedAttributesAttributeExtendedAttributeParserRuleCall_0_2_1_0()); 
            }
            pushFollow(FOLLOW_ruleAttributeExtendedAttribute_in_rule__Attribute__ExtendedAttributesAssignment_0_2_120274);
            ruleAttributeExtendedAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getExtendedAttributesAttributeExtendedAttributeParserRuleCall_0_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__ExtendedAttributesAssignment_0_2_1"


    // $ANTLR start "rule__Attribute__StringifierAssignment_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10122:1: rule__Attribute__StringifierAssignment_1 : ( ( 'stringifier' ) ) ;
    public final void rule__Attribute__StringifierAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10126:1: ( ( ( 'stringifier' ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10127:1: ( ( 'stringifier' ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10127:1: ( ( 'stringifier' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10128:1: ( 'stringifier' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getStringifierStringifierKeyword_1_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10129:1: ( 'stringifier' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10130:1: 'stringifier'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getStringifierStringifierKeyword_1_0()); 
            }
            match(input,76,FOLLOW_76_in_rule__Attribute__StringifierAssignment_120310); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getStringifierStringifierKeyword_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getStringifierStringifierKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__StringifierAssignment_1"


    // $ANTLR start "rule__Attribute__TypeAssignment_4"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10145:1: rule__Attribute__TypeAssignment_4 : ( ruleTypeRef ) ;
    public final void rule__Attribute__TypeAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10149:1: ( ( ruleTypeRef ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10150:1: ( ruleTypeRef )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10150:1: ( ruleTypeRef )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10151:1: ruleTypeRef
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getTypeTypeRefParserRuleCall_4_0()); 
            }
            pushFollow(FOLLOW_ruleTypeRef_in_rule__Attribute__TypeAssignment_420349);
            ruleTypeRef();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getTypeTypeRefParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__TypeAssignment_4"


    // $ANTLR start "rule__Attribute__NameAssignment_5"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10160:1: rule__Attribute__NameAssignment_5 : ( ruleScopedName ) ;
    public final void rule__Attribute__NameAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10164:1: ( ( ruleScopedName ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10165:1: ( ruleScopedName )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10165:1: ( ruleScopedName )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10166:1: ruleScopedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getNameScopedNameParserRuleCall_5_0()); 
            }
            pushFollow(FOLLOW_ruleScopedName_in_rule__Attribute__NameAssignment_520380);
            ruleScopedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getNameScopedNameParserRuleCall_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__NameAssignment_5"


    // $ANTLR start "rule__Attribute__GetRaisesAssignment_6_0_2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10175:1: rule__Attribute__GetRaisesAssignment_6_0_2 : ( ( ruleScopedName ) ) ;
    public final void rule__Attribute__GetRaisesAssignment_6_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10179:1: ( ( ( ruleScopedName ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10180:1: ( ( ruleScopedName ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10180:1: ( ( ruleScopedName ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10181:1: ( ruleScopedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getGetRaisesExceptionCrossReference_6_0_2_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10182:1: ( ruleScopedName )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10183:1: ruleScopedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getGetRaisesExceptionScopedNameParserRuleCall_6_0_2_0_1()); 
            }
            pushFollow(FOLLOW_ruleScopedName_in_rule__Attribute__GetRaisesAssignment_6_0_220415);
            ruleScopedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getGetRaisesExceptionScopedNameParserRuleCall_6_0_2_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getGetRaisesExceptionCrossReference_6_0_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__GetRaisesAssignment_6_0_2"


    // $ANTLR start "rule__Attribute__GetRaisesAssignment_6_0_3_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10194:1: rule__Attribute__GetRaisesAssignment_6_0_3_1 : ( ( ruleScopedName ) ) ;
    public final void rule__Attribute__GetRaisesAssignment_6_0_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10198:1: ( ( ( ruleScopedName ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10199:1: ( ( ruleScopedName ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10199:1: ( ( ruleScopedName ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10200:1: ( ruleScopedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getGetRaisesExceptionCrossReference_6_0_3_1_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10201:1: ( ruleScopedName )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10202:1: ruleScopedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getGetRaisesExceptionScopedNameParserRuleCall_6_0_3_1_0_1()); 
            }
            pushFollow(FOLLOW_ruleScopedName_in_rule__Attribute__GetRaisesAssignment_6_0_3_120454);
            ruleScopedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getGetRaisesExceptionScopedNameParserRuleCall_6_0_3_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getGetRaisesExceptionCrossReference_6_0_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__GetRaisesAssignment_6_0_3_1"


    // $ANTLR start "rule__Attribute__SetRaisesAssignment_6_1_2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10213:1: rule__Attribute__SetRaisesAssignment_6_1_2 : ( ( ruleScopedName ) ) ;
    public final void rule__Attribute__SetRaisesAssignment_6_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10217:1: ( ( ( ruleScopedName ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10218:1: ( ( ruleScopedName ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10218:1: ( ( ruleScopedName ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10219:1: ( ruleScopedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getSetRaisesExceptionCrossReference_6_1_2_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10220:1: ( ruleScopedName )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10221:1: ruleScopedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getSetRaisesExceptionScopedNameParserRuleCall_6_1_2_0_1()); 
            }
            pushFollow(FOLLOW_ruleScopedName_in_rule__Attribute__SetRaisesAssignment_6_1_220493);
            ruleScopedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getSetRaisesExceptionScopedNameParserRuleCall_6_1_2_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getSetRaisesExceptionCrossReference_6_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__SetRaisesAssignment_6_1_2"


    // $ANTLR start "rule__Attribute__SetRaisesAssignment_6_1_3_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10232:1: rule__Attribute__SetRaisesAssignment_6_1_3_1 : ( ( ruleScopedName ) ) ;
    public final void rule__Attribute__SetRaisesAssignment_6_1_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10236:1: ( ( ( ruleScopedName ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10237:1: ( ( ruleScopedName ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10237:1: ( ( ruleScopedName ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10238:1: ( ruleScopedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getSetRaisesExceptionCrossReference_6_1_3_1_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10239:1: ( ruleScopedName )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10240:1: ruleScopedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttributeAccess().getSetRaisesExceptionScopedNameParserRuleCall_6_1_3_1_0_1()); 
            }
            pushFollow(FOLLOW_ruleScopedName_in_rule__Attribute__SetRaisesAssignment_6_1_3_120532);
            ruleScopedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getSetRaisesExceptionScopedNameParserRuleCall_6_1_3_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttributeAccess().getSetRaisesExceptionCrossReference_6_1_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__SetRaisesAssignment_6_1_3_1"


    // $ANTLR start "rule__Exception__ExtendedAttributesAssignment_0_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10251:1: rule__Exception__ExtendedAttributesAssignment_0_1 : ( ruleExceptionExtendedAttribute ) ;
    public final void rule__Exception__ExtendedAttributesAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10255:1: ( ( ruleExceptionExtendedAttribute ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10256:1: ( ruleExceptionExtendedAttribute )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10256:1: ( ruleExceptionExtendedAttribute )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10257:1: ruleExceptionExtendedAttribute
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionAccess().getExtendedAttributesExceptionExtendedAttributeParserRuleCall_0_1_0()); 
            }
            pushFollow(FOLLOW_ruleExceptionExtendedAttribute_in_rule__Exception__ExtendedAttributesAssignment_0_120567);
            ruleExceptionExtendedAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionAccess().getExtendedAttributesExceptionExtendedAttributeParserRuleCall_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__ExtendedAttributesAssignment_0_1"


    // $ANTLR start "rule__Exception__ExtendedAttributesAssignment_0_2_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10266:1: rule__Exception__ExtendedAttributesAssignment_0_2_1 : ( ruleExceptionExtendedAttribute ) ;
    public final void rule__Exception__ExtendedAttributesAssignment_0_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10270:1: ( ( ruleExceptionExtendedAttribute ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10271:1: ( ruleExceptionExtendedAttribute )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10271:1: ( ruleExceptionExtendedAttribute )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10272:1: ruleExceptionExtendedAttribute
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionAccess().getExtendedAttributesExceptionExtendedAttributeParserRuleCall_0_2_1_0()); 
            }
            pushFollow(FOLLOW_ruleExceptionExtendedAttribute_in_rule__Exception__ExtendedAttributesAssignment_0_2_120598);
            ruleExceptionExtendedAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionAccess().getExtendedAttributesExceptionExtendedAttributeParserRuleCall_0_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__ExtendedAttributesAssignment_0_2_1"


    // $ANTLR start "rule__Exception__NameAssignment_2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10281:1: rule__Exception__NameAssignment_2 : ( RULE_ID ) ;
    public final void rule__Exception__NameAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10285:1: ( ( RULE_ID ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10286:1: ( RULE_ID )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10286:1: ( RULE_ID )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10287:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionAccess().getNameIDTerminalRuleCall_2_0()); 
            }
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Exception__NameAssignment_220629); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionAccess().getNameIDTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__NameAssignment_2"


    // $ANTLR start "rule__Exception__MembersAssignment_4"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10296:1: rule__Exception__MembersAssignment_4 : ( ruleExceptionMember ) ;
    public final void rule__Exception__MembersAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10300:1: ( ( ruleExceptionMember ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10301:1: ( ruleExceptionMember )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10301:1: ( ruleExceptionMember )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10302:1: ruleExceptionMember
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionAccess().getMembersExceptionMemberParserRuleCall_4_0()); 
            }
            pushFollow(FOLLOW_ruleExceptionMember_in_rule__Exception__MembersAssignment_420660);
            ruleExceptionMember();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionAccess().getMembersExceptionMemberParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Exception__MembersAssignment_4"


    // $ANTLR start "rule__ExceptionField__TypeAssignment_0"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10311:1: rule__ExceptionField__TypeAssignment_0 : ( ruleTypeRef ) ;
    public final void rule__ExceptionField__TypeAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10315:1: ( ( ruleTypeRef ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10316:1: ( ruleTypeRef )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10316:1: ( ruleTypeRef )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10317:1: ruleTypeRef
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionFieldAccess().getTypeTypeRefParserRuleCall_0_0()); 
            }
            pushFollow(FOLLOW_ruleTypeRef_in_rule__ExceptionField__TypeAssignment_020691);
            ruleTypeRef();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionFieldAccess().getTypeTypeRefParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ExceptionField__TypeAssignment_0"


    // $ANTLR start "rule__ExceptionField__NameAssignment_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10326:1: rule__ExceptionField__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__ExceptionField__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10330:1: ( ( RULE_ID ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10331:1: ( RULE_ID )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10331:1: ( RULE_ID )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10332:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExceptionFieldAccess().getNameIDTerminalRuleCall_1_0()); 
            }
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ExceptionField__NameAssignment_120722); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExceptionFieldAccess().getNameIDTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ExceptionField__NameAssignment_1"


    // $ANTLR start "rule__Argument__ExtendedAttributesAssignment_0_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10341:1: rule__Argument__ExtendedAttributesAssignment_0_1 : ( ruleArgumentExtendedAttribute ) ;
    public final void rule__Argument__ExtendedAttributesAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10345:1: ( ( ruleArgumentExtendedAttribute ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10346:1: ( ruleArgumentExtendedAttribute )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10346:1: ( ruleArgumentExtendedAttribute )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10347:1: ruleArgumentExtendedAttribute
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getExtendedAttributesArgumentExtendedAttributeParserRuleCall_0_1_0()); 
            }
            pushFollow(FOLLOW_ruleArgumentExtendedAttribute_in_rule__Argument__ExtendedAttributesAssignment_0_120753);
            ruleArgumentExtendedAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getExtendedAttributesArgumentExtendedAttributeParserRuleCall_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__ExtendedAttributesAssignment_0_1"


    // $ANTLR start "rule__Argument__ExtendedAttributesAssignment_0_2_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10356:1: rule__Argument__ExtendedAttributesAssignment_0_2_1 : ( ruleArgumentExtendedAttribute ) ;
    public final void rule__Argument__ExtendedAttributesAssignment_0_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10360:1: ( ( ruleArgumentExtendedAttribute ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10361:1: ( ruleArgumentExtendedAttribute )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10361:1: ( ruleArgumentExtendedAttribute )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10362:1: ruleArgumentExtendedAttribute
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getExtendedAttributesArgumentExtendedAttributeParserRuleCall_0_2_1_0()); 
            }
            pushFollow(FOLLOW_ruleArgumentExtendedAttribute_in_rule__Argument__ExtendedAttributesAssignment_0_2_120784);
            ruleArgumentExtendedAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getExtendedAttributesArgumentExtendedAttributeParserRuleCall_0_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__ExtendedAttributesAssignment_0_2_1"


    // $ANTLR start "rule__Argument__InAssignment_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10371:1: rule__Argument__InAssignment_1 : ( ( 'in' ) ) ;
    public final void rule__Argument__InAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10375:1: ( ( ( 'in' ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10376:1: ( ( 'in' ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10376:1: ( ( 'in' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10377:1: ( 'in' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getInInKeyword_1_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10378:1: ( 'in' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10379:1: 'in'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getInInKeyword_1_0()); 
            }
            match(input,78,FOLLOW_78_in_rule__Argument__InAssignment_120820); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getInInKeyword_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getInInKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__InAssignment_1"


    // $ANTLR start "rule__Argument__OptionalAssignment_2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10394:1: rule__Argument__OptionalAssignment_2 : ( ( 'optional' ) ) ;
    public final void rule__Argument__OptionalAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10398:1: ( ( ( 'optional' ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10399:1: ( ( 'optional' ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10399:1: ( ( 'optional' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10400:1: ( 'optional' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getOptionalOptionalKeyword_2_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10401:1: ( 'optional' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10402:1: 'optional'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getOptionalOptionalKeyword_2_0()); 
            }
            match(input,79,FOLLOW_79_in_rule__Argument__OptionalAssignment_220864); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getOptionalOptionalKeyword_2_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getOptionalOptionalKeyword_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__OptionalAssignment_2"


    // $ANTLR start "rule__Argument__TypeAssignment_3"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10417:1: rule__Argument__TypeAssignment_3 : ( ruleTypeRef ) ;
    public final void rule__Argument__TypeAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10421:1: ( ( ruleTypeRef ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10422:1: ( ruleTypeRef )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10422:1: ( ruleTypeRef )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10423:1: ruleTypeRef
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getTypeTypeRefParserRuleCall_3_0()); 
            }
            pushFollow(FOLLOW_ruleTypeRef_in_rule__Argument__TypeAssignment_320903);
            ruleTypeRef();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getTypeTypeRefParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__TypeAssignment_3"


    // $ANTLR start "rule__Argument__EllipsisAssignment_4"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10432:1: rule__Argument__EllipsisAssignment_4 : ( ( '...' ) ) ;
    public final void rule__Argument__EllipsisAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10436:1: ( ( ( '...' ) ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10437:1: ( ( '...' ) )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10437:1: ( ( '...' ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10438:1: ( '...' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getEllipsisFullStopFullStopFullStopKeyword_4_0()); 
            }
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10439:1: ( '...' )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10440:1: '...'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getEllipsisFullStopFullStopFullStopKeyword_4_0()); 
            }
            match(input,80,FOLLOW_80_in_rule__Argument__EllipsisAssignment_420939); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getEllipsisFullStopFullStopFullStopKeyword_4_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getEllipsisFullStopFullStopFullStopKeyword_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__EllipsisAssignment_4"


    // $ANTLR start "rule__Argument__NameAssignment_5"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10455:1: rule__Argument__NameAssignment_5 : ( RULE_ID ) ;
    public final void rule__Argument__NameAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10459:1: ( ( RULE_ID ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10460:1: ( RULE_ID )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10460:1: ( RULE_ID )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10461:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArgumentAccess().getNameIDTerminalRuleCall_5_0()); 
            }
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Argument__NameAssignment_520978); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArgumentAccess().getNameIDTerminalRuleCall_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Argument__NameAssignment_5"


    // $ANTLR start "rule__Const__TypeAssignment_1"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10470:1: rule__Const__TypeAssignment_1 : ( ruleTypeRef ) ;
    public final void rule__Const__TypeAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10474:1: ( ( ruleTypeRef ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10475:1: ( ruleTypeRef )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10475:1: ( ruleTypeRef )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10476:1: ruleTypeRef
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstAccess().getTypeTypeRefParserRuleCall_1_0()); 
            }
            pushFollow(FOLLOW_ruleTypeRef_in_rule__Const__TypeAssignment_121009);
            ruleTypeRef();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstAccess().getTypeTypeRefParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const__TypeAssignment_1"


    // $ANTLR start "rule__Const__NameAssignment_2"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10485:1: rule__Const__NameAssignment_2 : ( RULE_ID ) ;
    public final void rule__Const__NameAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10489:1: ( ( RULE_ID ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10490:1: ( RULE_ID )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10490:1: ( RULE_ID )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10491:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstAccess().getNameIDTerminalRuleCall_2_0()); 
            }
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Const__NameAssignment_221040); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstAccess().getNameIDTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const__NameAssignment_2"


    // $ANTLR start "rule__Const__ExprAssignment_4"
    // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10500:1: rule__Const__ExprAssignment_4 : ( ruleConstExpr ) ;
    public final void rule__Const__ExprAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10504:1: ( ( ruleConstExpr ) )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10505:1: ( ruleConstExpr )
            {
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10505:1: ( ruleConstExpr )
            // ../org.waml.w3c.webidl.ui/src-gen/org/waml/w3c/webidl/ui/contentassist/antlr/internal/InternalWebIDL.g:10506:1: ruleConstExpr
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstAccess().getExprConstExprParserRuleCall_4_0()); 
            }
            pushFollow(FOLLOW_ruleConstExpr_in_rule__Const__ExprAssignment_421071);
            ruleConstExpr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstAccess().getExprConstExprParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const__ExprAssignment_4"

    // Delegated rules


    protected DFA6 dfa6 = new DFA6(this);
    protected DFA10 dfa10 = new DFA10(this);
    static final String DFA6_eotS =
        "\12\uffff";
    static final String DFA6_eofS =
        "\12\uffff";
    static final String DFA6_minS =
        "\1\4\1\13\4\uffff\1\41\1\13\1\67\1\41";
    static final String DFA6_maxS =
        "\1\103\1\56\4\uffff\1\64\1\56\1\103\1\64";
    static final String DFA6_acceptS =
        "\2\uffff\1\1\1\2\1\3\1\4\4\uffff";
    static final String DFA6_specialS =
        "\12\uffff}>";
    static final String[] DFA6_transitionS = {
            "\1\5\25\uffff\1\4\30\uffff\1\1\3\uffff\1\2\13\uffff\1\3",
            "\1\2\22\uffff\1\2\3\uffff\1\2\1\uffff\1\2\1\6\1\2\6\uffff"+
            "\2\2",
            "",
            "",
            "",
            "",
            "\1\7\22\uffff\1\10",
            "\1\2\22\uffff\1\2\3\uffff\1\2\1\uffff\1\2\1\11\1\2\6\uffff"+
            "\2\2",
            "\1\2\13\uffff\1\3",
            "\1\7\22\uffff\1\10"
    };

    static final short[] DFA6_eot = DFA.unpackEncodedString(DFA6_eotS);
    static final short[] DFA6_eof = DFA.unpackEncodedString(DFA6_eofS);
    static final char[] DFA6_min = DFA.unpackEncodedStringToUnsignedChars(DFA6_minS);
    static final char[] DFA6_max = DFA.unpackEncodedStringToUnsignedChars(DFA6_maxS);
    static final short[] DFA6_accept = DFA.unpackEncodedString(DFA6_acceptS);
    static final short[] DFA6_special = DFA.unpackEncodedString(DFA6_specialS);
    static final short[][] DFA6_transition;

    static {
        int numStates = DFA6_transitionS.length;
        DFA6_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA6_transition[i] = DFA.unpackEncodedString(DFA6_transitionS[i]);
        }
    }

    class DFA6 extends DFA {

        public DFA6(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 6;
            this.eot = DFA6_eot;
            this.eof = DFA6_eof;
            this.min = DFA6_min;
            this.max = DFA6_max;
            this.accept = DFA6_accept;
            this.special = DFA6_special;
            this.transition = DFA6_transition;
        }
        public String getDescription() {
            return "1535:1: rule__Definitions__Alternatives : ( ( ruleInterface ) | ( ruleException ) | ( ruleTypeDef ) | ( ruleImplementStatement ) );";
        }
    }
    static final String DFA10_eotS =
        "\25\uffff";
    static final String DFA10_eofS =
        "\25\uffff";
    static final String DFA10_minS =
        "\1\4\1\47\1\4\2\uffff\2\43\2\51\3\41\1\47\1\4\2\43\2\51\3\41";
    static final String DFA10_maxS =
        "\1\115\1\54\1\115\2\uffff\2\43\1\51\1\113\3\64\1\54\1\115\2\43"+
        "\1\51\1\113\3\64";
    static final String DFA10_acceptS =
        "\3\uffff\1\1\1\2\20\uffff";
    static final String DFA10_specialS =
        "\25\uffff}>";
    static final String[] DFA10_transitionS = {
            "\1\4\7\uffff\14\4\3\uffff\1\4\27\uffff\1\1\6\uffff\5\4\2\3"+
            "\6\uffff\1\4\4\uffff\1\2\1\4",
            "\1\3\1\5\1\uffff\1\6\1\uffff\1\3",
            "\1\4\7\uffff\14\4\3\uffff\1\4\36\uffff\5\4\2\3\6\uffff\1\4"+
            "\5\uffff\1\4",
            "",
            "",
            "\1\7",
            "\1\10",
            "\1\11",
            "\1\12\41\uffff\1\13",
            "\1\14\22\uffff\1\15",
            "\1\14\22\uffff\1\15",
            "\1\14\22\uffff\1\15",
            "\1\3\1\16\1\uffff\1\17\1\uffff\1\3",
            "\1\4\7\uffff\14\4\3\uffff\1\4\36\uffff\5\4\2\3\6\uffff\1\4"+
            "\4\uffff\1\2\1\4",
            "\1\20",
            "\1\21",
            "\1\22",
            "\1\23\41\uffff\1\24",
            "\1\14\22\uffff\1\15",
            "\1\14\22\uffff\1\15",
            "\1\14\22\uffff\1\15"
    };

    static final short[] DFA10_eot = DFA.unpackEncodedString(DFA10_eotS);
    static final short[] DFA10_eof = DFA.unpackEncodedString(DFA10_eofS);
    static final char[] DFA10_min = DFA.unpackEncodedStringToUnsignedChars(DFA10_minS);
    static final char[] DFA10_max = DFA.unpackEncodedStringToUnsignedChars(DFA10_maxS);
    static final short[] DFA10_accept = DFA.unpackEncodedString(DFA10_acceptS);
    static final short[] DFA10_special = DFA.unpackEncodedString(DFA10_specialS);
    static final short[][] DFA10_transition;

    static {
        int numStates = DFA10_transitionS.length;
        DFA10_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA10_transition[i] = DFA.unpackEncodedString(DFA10_transitionS[i]);
        }
    }

    class DFA10 extends DFA {

        public DFA10(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 10;
            this.eot = DFA10_eot;
            this.eof = DFA10_eof;
            this.min = DFA10_min;
            this.max = DFA10_max;
            this.accept = DFA10_accept;
            this.special = DFA10_special;
            this.transition = DFA10_transition;
        }
        public String getDescription() {
            return "1671:1: rule__InterfaceFeature__Alternatives : ( ( ruleAttribute ) | ( ruleOperation ) );";
        }
    }
 

    public static final BitSet FOLLOW_ruleIDLDefinitions_in_entryRuleIDLDefinitions67 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleIDLDefinitions74 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__IDLDefinitions__Group__0_in_ruleIDLDefinitions100 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleImport_in_entryRuleImport127 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleImport134 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Import__Group__0_in_ruleImport160 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeDef_in_entryRuleTypeDef187 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTypeDef194 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeDef__Group__0_in_ruleTypeDef220 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeRef_in_entryRuleTypeRef247 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTypeRef254 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeRef__Alternatives_in_ruleTypeRef280 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleUserTypeRef_in_entryRuleUserTypeRef307 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleUserTypeRef314 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserTypeRef__TypeAssignment_in_ruleUserTypeRef340 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePrimitiveTypeRef_in_entryRulePrimitiveTypeRef369 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePrimitiveTypeRef376 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PrimitiveTypeRef__Group__0_in_rulePrimitiveTypeRef402 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSequenceType_in_entryRuleSequenceType429 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSequenceType436 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SequenceType__Group__0_in_ruleSequenceType462 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleScopedName_in_entryRuleScopedName489 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleScopedName496 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ScopedName__Group__0_in_ruleScopedName522 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleConstructor_in_entryRuleConstructor551 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleConstructor558 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Constructor__Group__0_in_ruleConstructor584 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNamedConstructor_in_entryRuleNamedConstructor611 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNamedConstructor618 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group__0_in_ruleNamedConstructor644 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCallback_in_entryRuleCallback671 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleCallback678 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Callback__Alternatives_in_ruleCallback704 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNoInterfaceObject_in_entryRuleNoInterfaceObject731 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNoInterfaceObject738 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NoInterfaceObject__Group__0_in_ruleNoInterfaceObject764 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleOverrideBuiltins_in_entryRuleOverrideBuiltins791 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleOverrideBuiltins798 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_11_in_ruleOverrideBuiltins825 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePrototypeRoot_in_entryRulePrototypeRoot853 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePrototypeRoot860 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PrototypeRoot__Group__0_in_rulePrototypeRoot886 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePutForwards_in_entryRulePutForwards913 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePutForwards920 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PutForwards__Group__0_in_rulePutForwards946 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTreatNullAs_in_entryRuleTreatNullAs973 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTreatNullAs980 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TreatNullAs__Group__0_in_ruleTreatNullAs1006 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTreatUndefinedAs_in_entryRuleTreatUndefinedAs1033 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTreatUndefinedAs1040 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TreatUndefinedAs__Alternatives_in_ruleTreatUndefinedAs1066 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAllowAny_in_entryRuleAllowAny1093 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAllowAny1100 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AllowAny__Group__0_in_ruleAllowAny1126 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleReplaceable_in_entryRuleReplaceable1153 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleReplaceable1160 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Replaceable__Group__0_in_ruleReplaceable1186 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSupplemental_in_entryRuleSupplemental1213 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSupplemental1220 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Supplemental__Group__0_in_ruleSupplemental1246 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleReplaceableNamedProperties_in_entryRuleReplaceableNamedProperties1273 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleReplaceableNamedProperties1280 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ReplaceableNamedProperties__Group__0_in_ruleReplaceableNamedProperties1306 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAbstractDefinitions_in_entryRuleAbstractDefinitions1333 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAbstractDefinitions1340 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AbstractDefinitions__Alternatives_in_ruleAbstractDefinitions1366 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDefinitions_in_entryRuleDefinitions1393 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDefinitions1400 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Definitions__Alternatives_in_ruleDefinitions1426 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleImplementStatement_in_entryRuleImplementStatement1453 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleImplementStatement1460 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ImplementStatement__Group__0_in_ruleImplementStatement1486 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleModule_in_entryRuleModule1513 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleModule1520 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Module__Group__0_in_ruleModule1546 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleModuleExtendedAttribute_in_entryRuleModuleExtendedAttribute1573 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleModuleExtendedAttribute1580 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ModuleExtendedAttribute__Alternatives_in_ruleModuleExtendedAttribute1606 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePrefix_in_entryRulePrefix1633 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePrefix1640 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Prefix__Group__0_in_rulePrefix1666 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNamespaceObject_in_entryRuleNamespaceObject1693 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNamespaceObject1700 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamespaceObject__Group__0_in_ruleNamespaceObject1726 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleInterface_in_entryRuleInterface1753 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleInterface1760 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group__0_in_ruleInterface1786 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleInterfaceExtendedAttribute_in_entryRuleInterfaceExtendedAttribute1813 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleInterfaceExtendedAttribute1820 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__InterfaceExtendedAttribute__Alternatives_in_ruleInterfaceExtendedAttribute1846 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleInterfaceMember_in_entryRuleInterfaceMember1873 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleInterfaceMember1880 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__InterfaceMember__Alternatives_in_ruleInterfaceMember1906 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleInterfaceFeature_in_entryRuleInterfaceFeature1933 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleInterfaceFeature1940 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__InterfaceFeature__Alternatives_in_ruleInterfaceFeature1966 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleOperation_in_entryRuleOperation1993 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleOperation2000 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__0_in_ruleOperation2026 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleOperationExtendedAttribute_in_entryRuleOperationExtendedAttribute2053 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleOperationExtendedAttribute2060 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OperationExtendedAttribute__Alternatives_in_ruleOperationExtendedAttribute2086 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleOperationSpecial_in_entryRuleOperationSpecial2113 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleOperationSpecial2120 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Alternatives_in_ruleOperationSpecial2146 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAttribute_in_entryRuleAttribute2173 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAttribute2180 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__0_in_ruleAttribute2206 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAttributeExtendedAttribute_in_entryRuleAttributeExtendedAttribute2233 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAttributeExtendedAttribute2240 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AttributeExtendedAttribute__Alternatives_in_ruleAttributeExtendedAttribute2266 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleException_in_entryRuleException2293 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleException2300 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exception__Group__0_in_ruleException2326 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExceptionMember_in_entryRuleExceptionMember2353 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleExceptionMember2360 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ExceptionMember__Alternatives_in_ruleExceptionMember2386 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExceptionField_in_entryRuleExceptionField2413 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleExceptionField2420 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ExceptionField__Group__0_in_ruleExceptionField2446 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExceptionExtendedAttribute_in_entryRuleExceptionExtendedAttribute2473 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleExceptionExtendedAttribute2480 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNoInterfaceObject_in_ruleExceptionExtendedAttribute2506 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArgument_in_entryRuleArgument2532 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleArgument2539 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__Group__0_in_ruleArgument2565 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArgumentExtendedAttribute_in_entryRuleArgumentExtendedAttribute2592 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleArgumentExtendedAttribute2599 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ArgumentExtendedAttribute__Alternatives_in_ruleArgumentExtendedAttribute2625 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleConst_in_entryRuleConst2652 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleConst2659 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Const__Group__0_in_ruleConst2685 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleConstExpr_in_entryRuleConstExpr2712 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleConstExpr2719 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ConstExpr__Alternatives_in_ruleConstExpr2745 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeRef__Group_0__0_in_rule__TypeRef__Alternatives2781 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeRef__Group_1__0_in_rule__TypeRef__Alternatives2799 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeRef__Group_2__0_in_rule__TypeRef__Alternatives2817 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_12_in_rule__PrimitiveTypeRef__NameAlternatives_1_02852 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_13_in_rule__PrimitiveTypeRef__NameAlternatives_1_02872 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_14_in_rule__PrimitiveTypeRef__NameAlternatives_1_02892 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_rule__PrimitiveTypeRef__NameAlternatives_1_02912 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_16_in_rule__PrimitiveTypeRef__NameAlternatives_1_02932 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_rule__PrimitiveTypeRef__NameAlternatives_1_02952 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_rule__PrimitiveTypeRef__NameAlternatives_1_02972 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_rule__PrimitiveTypeRef__NameAlternatives_1_02992 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_rule__PrimitiveTypeRef__NameAlternatives_1_03012 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_rule__PrimitiveTypeRef__NameAlternatives_1_03032 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__PrimitiveTypeRef__NameAlternatives_1_03052 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__PrimitiveTypeRef__NameAlternatives_1_03072 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Callback__Group_0__0_in_rule__Callback__Alternatives3106 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Callback__Group_1__0_in_rule__Callback__Alternatives3124 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Callback__Group_2__0_in_rule__Callback__Alternatives3142 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TreatUndefinedAs__Group_0__0_in_rule__TreatUndefinedAs__Alternatives3175 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TreatUndefinedAs__Group_1__0_in_rule__TreatUndefinedAs__Alternatives3193 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDefinitions_in_rule__AbstractDefinitions__Alternatives3226 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleModule_in_rule__AbstractDefinitions__Alternatives3243 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleInterface_in_rule__Definitions__Alternatives3275 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleException_in_rule__Definitions__Alternatives3292 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeDef_in_rule__Definitions__Alternatives3309 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleImplementStatement_in_rule__Definitions__Alternatives3326 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePrefix_in_rule__ModuleExtendedAttribute__Alternatives3358 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNamespaceObject_in_rule__ModuleExtendedAttribute__Alternatives3375 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCallback_in_rule__InterfaceExtendedAttribute__Alternatives3407 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleConstructor_in_rule__InterfaceExtendedAttribute__Alternatives3424 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNamedConstructor_in_rule__InterfaceExtendedAttribute__Alternatives3441 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNoInterfaceObject_in_rule__InterfaceExtendedAttribute__Alternatives3458 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePrototypeRoot_in_rule__InterfaceExtendedAttribute__Alternatives3475 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSupplemental_in_rule__InterfaceExtendedAttribute__Alternatives3492 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleOverrideBuiltins_in_rule__InterfaceExtendedAttribute__Alternatives3509 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleReplaceableNamedProperties_in_rule__InterfaceExtendedAttribute__Alternatives3526 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleConst_in_rule__InterfaceMember__Alternatives3558 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleInterfaceFeature_in_rule__InterfaceMember__Alternatives3575 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAttribute_in_rule__InterfaceFeature__Alternatives3607 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleOperation_in_rule__InterfaceFeature__Alternatives3624 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTreatNullAs_in_rule__OperationExtendedAttribute__Alternatives3656 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTreatUndefinedAs_in_rule__OperationExtendedAttribute__Alternatives3673 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_0__0_in_rule__OperationSpecial__Alternatives3705 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_1__0_in_rule__OperationSpecial__Alternatives3723 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_2__0_in_rule__OperationSpecial__Alternatives3741 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_3__0_in_rule__OperationSpecial__Alternatives3759 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_4__0_in_rule__OperationSpecial__Alternatives3777 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePutForwards_in_rule__AttributeExtendedAttribute__Alternatives3810 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleReplaceable_in_rule__AttributeExtendedAttribute__Alternatives3827 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTreatNullAs_in_rule__AttributeExtendedAttribute__Alternatives3844 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTreatUndefinedAs_in_rule__AttributeExtendedAttribute__Alternatives3861 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleConst_in_rule__ExceptionMember__Alternatives3893 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExceptionField_in_rule__ExceptionMember__Alternatives3910 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAllowAny_in_rule__ArgumentExtendedAttribute__Alternatives3942 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTreatNullAs_in_rule__ArgumentExtendedAttribute__Alternatives3959 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTreatUndefinedAs_in_rule__ArgumentExtendedAttribute__Alternatives3976 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ConstExpr__Group_0__0_in_rule__ConstExpr__Alternatives4008 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ConstExpr__Group_1__0_in_rule__ConstExpr__Alternatives4026 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__IDLDefinitions__Group__0__Impl_in_rule__IDLDefinitions__Group__04057 = new BitSet(new long[]{0x0089000004000010L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__IDLDefinitions__Group__1_in_rule__IDLDefinitions__Group__04060 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__IDLDefinitions__ImportsAssignment_0_in_rule__IDLDefinitions__Group__0__Impl4087 = new BitSet(new long[]{0x0000000001000002L});
    public static final BitSet FOLLOW_rule__IDLDefinitions__Group__1__Impl_in_rule__IDLDefinitions__Group__14118 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__IDLDefinitions__DefinitionsAssignment_1_in_rule__IDLDefinitions__Group__1__Impl4145 = new BitSet(new long[]{0x0089000004000012L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__Import__Group__0__Impl_in_rule__Import__Group__04180 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Import__Group__1_in_rule__Import__Group__04183 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Import__Group__0__Impl4211 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Import__Group__1__Impl_in_rule__Import__Group__14242 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__Import__Group__2_in_rule__Import__Group__14245 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Import__ImportURIAssignment_1_in_rule__Import__Group__1__Impl4272 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Import__Group__2__Impl_in_rule__Import__Group__24302 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Import__Group__2__Impl4330 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeDef__Group__0__Impl_in_rule__TypeDef__Group__04367 = new BitSet(new long[]{0x008800000CFFF010L,0x0000000000000088L});
    public static final BitSet FOLLOW_rule__TypeDef__Group__1_in_rule__TypeDef__Group__04370 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_rule__TypeDef__Group__0__Impl4398 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeDef__Group__1__Impl_in_rule__TypeDef__Group__14429 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__TypeDef__Group__2_in_rule__TypeDef__Group__14432 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeDef__TypeAssignment_1_in_rule__TypeDef__Group__1__Impl4459 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeDef__Group__2__Impl_in_rule__TypeDef__Group__24489 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__TypeDef__Group__3_in_rule__TypeDef__Group__24492 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeDef__NameAssignment_2_in_rule__TypeDef__Group__2__Impl4519 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeDef__Group__3__Impl_in_rule__TypeDef__Group__34549 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__TypeDef__Group__3__Impl4577 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeRef__Group_0__0__Impl_in_rule__TypeRef__Group_0__04616 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
    public static final BitSet FOLLOW_rule__TypeRef__Group_0__1_in_rule__TypeRef__Group_0__04619 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePrimitiveTypeRef_in_rule__TypeRef__Group_0__0__Impl4646 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeRef__Group_0__1__Impl_in_rule__TypeRef__Group_0__14675 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeRef__IsArrayAssignment_0_1_in_rule__TypeRef__Group_0__1__Impl4702 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeRef__Group_1__0__Impl_in_rule__TypeRef__Group_1__04737 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
    public static final BitSet FOLLOW_rule__TypeRef__Group_1__1_in_rule__TypeRef__Group_1__04740 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSequenceType_in_rule__TypeRef__Group_1__0__Impl4767 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeRef__Group_1__1__Impl_in_rule__TypeRef__Group_1__14796 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeRef__IsArrayAssignment_1_1_in_rule__TypeRef__Group_1__1__Impl4823 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeRef__Group_2__0__Impl_in_rule__TypeRef__Group_2__04858 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
    public static final BitSet FOLLOW_rule__TypeRef__Group_2__1_in_rule__TypeRef__Group_2__04861 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleUserTypeRef_in_rule__TypeRef__Group_2__0__Impl4888 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeRef__Group_2__1__Impl_in_rule__TypeRef__Group_2__14917 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeRef__IsArrayAssignment_2_1_in_rule__TypeRef__Group_2__1__Impl4944 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PrimitiveTypeRef__Group__0__Impl_in_rule__PrimitiveTypeRef__Group__04979 = new BitSet(new long[]{0x0000000000FFF000L,0x0000000000000080L});
    public static final BitSet FOLLOW_rule__PrimitiveTypeRef__Group__1_in_rule__PrimitiveTypeRef__Group__04982 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PrimitiveTypeRef__UnsignedAssignment_0_in_rule__PrimitiveTypeRef__Group__0__Impl5009 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PrimitiveTypeRef__Group__1__Impl_in_rule__PrimitiveTypeRef__Group__15040 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
    public static final BitSet FOLLOW_rule__PrimitiveTypeRef__Group__2_in_rule__PrimitiveTypeRef__Group__15043 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PrimitiveTypeRef__NameAssignment_1_in_rule__PrimitiveTypeRef__Group__1__Impl5072 = new BitSet(new long[]{0x0000000000FFF002L,0x0000000000000080L});
    public static final BitSet FOLLOW_rule__PrimitiveTypeRef__NameAssignment_1_in_rule__PrimitiveTypeRef__Group__1__Impl5084 = new BitSet(new long[]{0x0000000000FFF002L,0x0000000000000080L});
    public static final BitSet FOLLOW_rule__PrimitiveTypeRef__Group__2__Impl_in_rule__PrimitiveTypeRef__Group__25117 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PrimitiveTypeRef__NullableAssignment_2_in_rule__PrimitiveTypeRef__Group__2__Impl5144 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SequenceType__Group__0__Impl_in_rule__SequenceType__Group__05181 = new BitSet(new long[]{0x008800000CFFF010L,0x0000000000000088L});
    public static final BitSet FOLLOW_rule__SequenceType__Group__1_in_rule__SequenceType__Group__05184 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__SequenceType__Group__0__Impl5212 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SequenceType__Group__1__Impl_in_rule__SequenceType__Group__15243 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_rule__SequenceType__Group__2_in_rule__SequenceType__Group__15246 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SequenceType__TypeAssignment_1_in_rule__SequenceType__Group__1__Impl5273 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SequenceType__Group__2__Impl_in_rule__SequenceType__Group__25303 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
    public static final BitSet FOLLOW_rule__SequenceType__Group__3_in_rule__SequenceType__Group__25306 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_rule__SequenceType__Group__2__Impl5334 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SequenceType__Group__3__Impl_in_rule__SequenceType__Group__35365 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SequenceType__NullableAssignment_3_in_rule__SequenceType__Group__3__Impl5392 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ScopedName__Group__0__Impl_in_rule__ScopedName__Group__05431 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_rule__ScopedName__Group__1_in_rule__ScopedName__Group__05434 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__ScopedName__Group__0__Impl5461 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ScopedName__Group__1__Impl_in_rule__ScopedName__Group__15490 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ScopedName__Group_1__0_in_rule__ScopedName__Group__1__Impl5517 = new BitSet(new long[]{0x0000000020000002L});
    public static final BitSet FOLLOW_rule__ScopedName__Group_1__0__Impl_in_rule__ScopedName__Group_1__05552 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__ScopedName__Group_1__1_in_rule__ScopedName__Group_1__05555 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_rule__ScopedName__Group_1__0__Impl5583 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ScopedName__Group_1__1__Impl_in_rule__ScopedName__Group_1__15614 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__ScopedName__Group_1__1__Impl5641 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Constructor__Group__0__Impl_in_rule__Constructor__Group__05675 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_rule__Constructor__Group__1_in_rule__Constructor__Group__05678 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_30_in_rule__Constructor__Group__0__Impl5706 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Constructor__Group__1__Impl_in_rule__Constructor__Group__15737 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_rule__Constructor__Group__2_in_rule__Constructor__Group__15740 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Constructor__Group__2__Impl_in_rule__Constructor__Group__25798 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Constructor__Group_2__0_in_rule__Constructor__Group__2__Impl5825 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Constructor__Group_2__0__Impl_in_rule__Constructor__Group_2__05862 = new BitSet(new long[]{0x008800000CFFF010L,0x000000000000C088L});
    public static final BitSet FOLLOW_rule__Constructor__Group_2__1_in_rule__Constructor__Group_2__05865 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_rule__Constructor__Group_2__0__Impl5893 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Constructor__Group_2__1__Impl_in_rule__Constructor__Group_2__15924 = new BitSet(new long[]{0x0000000300000000L});
    public static final BitSet FOLLOW_rule__Constructor__Group_2__2_in_rule__Constructor__Group_2__15927 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Constructor__ArgumentsAssignment_2_1_in_rule__Constructor__Group_2__1__Impl5954 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Constructor__Group_2__2__Impl_in_rule__Constructor__Group_2__25984 = new BitSet(new long[]{0x0000000300000000L});
    public static final BitSet FOLLOW_rule__Constructor__Group_2__3_in_rule__Constructor__Group_2__25987 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Constructor__Group_2_2__0_in_rule__Constructor__Group_2__2__Impl6014 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_rule__Constructor__Group_2__3__Impl_in_rule__Constructor__Group_2__36045 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_32_in_rule__Constructor__Group_2__3__Impl6073 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Constructor__Group_2_2__0__Impl_in_rule__Constructor__Group_2_2__06112 = new BitSet(new long[]{0x008800000CFFF010L,0x000000000000C088L});
    public static final BitSet FOLLOW_rule__Constructor__Group_2_2__1_in_rule__Constructor__Group_2_2__06115 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__Constructor__Group_2_2__0__Impl6143 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Constructor__Group_2_2__1__Impl_in_rule__Constructor__Group_2_2__16174 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Constructor__ArgumentsAssignment_2_2_1_in_rule__Constructor__Group_2_2__1__Impl6201 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group__0__Impl_in_rule__NamedConstructor__Group__06235 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group__1_in_rule__NamedConstructor__Group__06238 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_34_in_rule__NamedConstructor__Group__0__Impl6266 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group__1__Impl_in_rule__NamedConstructor__Group__16297 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group__2_in_rule__NamedConstructor__Group__16300 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group__2__Impl_in_rule__NamedConstructor__Group__26358 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group__3_in_rule__NamedConstructor__Group__26361 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__NamedConstructor__Group__2__Impl6389 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group__3__Impl_in_rule__NamedConstructor__Group__36420 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group__4_in_rule__NamedConstructor__Group__36423 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamedConstructor__NameAssignment_3_in_rule__NamedConstructor__Group__3__Impl6450 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group__4__Impl_in_rule__NamedConstructor__Group__46480 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group_4__0_in_rule__NamedConstructor__Group__4__Impl6507 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group_4__0__Impl_in_rule__NamedConstructor__Group_4__06548 = new BitSet(new long[]{0x008800010CFFF010L,0x000000000000C088L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group_4__1_in_rule__NamedConstructor__Group_4__06551 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_rule__NamedConstructor__Group_4__0__Impl6579 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group_4__1__Impl_in_rule__NamedConstructor__Group_4__16610 = new BitSet(new long[]{0x008800010CFFF010L,0x000000000000C088L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group_4__2_in_rule__NamedConstructor__Group_4__16613 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group_4_1__0_in_rule__NamedConstructor__Group_4__1__Impl6640 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group_4__2__Impl_in_rule__NamedConstructor__Group_4__26671 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_32_in_rule__NamedConstructor__Group_4__2__Impl6699 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group_4_1__0__Impl_in_rule__NamedConstructor__Group_4_1__06736 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group_4_1__1_in_rule__NamedConstructor__Group_4_1__06739 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamedConstructor__ArgumentsAssignment_4_1_0_in_rule__NamedConstructor__Group_4_1__0__Impl6766 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group_4_1__1__Impl_in_rule__NamedConstructor__Group_4_1__16796 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group_4_1_1__0_in_rule__NamedConstructor__Group_4_1__1__Impl6823 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group_4_1_1__0__Impl_in_rule__NamedConstructor__Group_4_1_1__06858 = new BitSet(new long[]{0x008800000CFFF010L,0x000000000000C088L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group_4_1_1__1_in_rule__NamedConstructor__Group_4_1_1__06861 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__NamedConstructor__Group_4_1_1__0__Impl6889 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamedConstructor__Group_4_1_1__1__Impl_in_rule__NamedConstructor__Group_4_1_1__16920 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamedConstructor__ArgumentsAssignment_4_1_1_1_in_rule__NamedConstructor__Group_4_1_1__1__Impl6947 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Callback__Group_0__0__Impl_in_rule__Callback__Group_0__06981 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_rule__Callback__Group_0__1_in_rule__Callback__Group_0__06984 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_rule__Callback__Group_0__0__Impl7012 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Callback__Group_0__1__Impl_in_rule__Callback__Group_0__17043 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Callback__Group_1__0__Impl_in_rule__Callback__Group_1__07105 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_rule__Callback__Group_1__1_in_rule__Callback__Group_1__07108 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_rule__Callback__Group_1__0__Impl7136 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Callback__Group_1__1__Impl_in_rule__Callback__Group_1__17167 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
    public static final BitSet FOLLOW_rule__Callback__Group_1__2_in_rule__Callback__Group_1__17170 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__Callback__Group_1__1__Impl7198 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Callback__Group_1__2__Impl_in_rule__Callback__Group_1__27229 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Callback__FunctionOnlyAssignment_1_2_in_rule__Callback__Group_1__2__Impl7256 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Callback__Group_2__0__Impl_in_rule__Callback__Group_2__07292 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_rule__Callback__Group_2__1_in_rule__Callback__Group_2__07295 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_rule__Callback__Group_2__0__Impl7323 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Callback__Group_2__1__Impl_in_rule__Callback__Group_2__17354 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
    public static final BitSet FOLLOW_rule__Callback__Group_2__2_in_rule__Callback__Group_2__17357 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__Callback__Group_2__1__Impl7385 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Callback__Group_2__2__Impl_in_rule__Callback__Group_2__27416 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Callback__PropertyOnlyAssignment_2_2_in_rule__Callback__Group_2__2__Impl7443 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NoInterfaceObject__Group__0__Impl_in_rule__NoInterfaceObject__Group__07479 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__NoInterfaceObject__Group__1_in_rule__NoInterfaceObject__Group__07482 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NoInterfaceObject__Group__1__Impl_in_rule__NoInterfaceObject__Group__17540 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__NoInterfaceObject__Group__1__Impl7568 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PrototypeRoot__Group__0__Impl_in_rule__PrototypeRoot__Group__07603 = new BitSet(new long[]{0x0000004000000000L});
    public static final BitSet FOLLOW_rule__PrototypeRoot__Group__1_in_rule__PrototypeRoot__Group__07606 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PrototypeRoot__Group__1__Impl_in_rule__PrototypeRoot__Group__17664 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__PrototypeRoot__Group__1__Impl7692 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PutForwards__Group__0__Impl_in_rule__PutForwards__Group__07727 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_rule__PutForwards__Group__1_in_rule__PutForwards__Group__07730 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_39_in_rule__PutForwards__Group__0__Impl7758 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PutForwards__Group__1__Impl_in_rule__PutForwards__Group__17789 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__PutForwards__Group__2_in_rule__PutForwards__Group__17792 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__PutForwards__Group__1__Impl7820 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PutForwards__Group__2__Impl_in_rule__PutForwards__Group__27851 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PutForwards__TargetAssignment_2_in_rule__PutForwards__Group__2__Impl7878 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TreatNullAs__Group__0__Impl_in_rule__TreatNullAs__Group__07914 = new BitSet(new long[]{0x0000010000000000L});
    public static final BitSet FOLLOW_rule__TreatNullAs__Group__1_in_rule__TreatNullAs__Group__07917 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TreatNullAs__Group__1__Impl_in_rule__TreatNullAs__Group__17975 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_rule__TreatNullAs__Group__2_in_rule__TreatNullAs__Group__17978 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_rule__TreatNullAs__Group__1__Impl8006 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TreatNullAs__Group__2__Impl_in_rule__TreatNullAs__Group__28037 = new BitSet(new long[]{0x0000020000000000L});
    public static final BitSet FOLLOW_rule__TreatNullAs__Group__3_in_rule__TreatNullAs__Group__28040 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__TreatNullAs__Group__2__Impl8068 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TreatNullAs__Group__3__Impl_in_rule__TreatNullAs__Group__38099 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_41_in_rule__TreatNullAs__Group__3__Impl8127 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TreatUndefinedAs__Group_0__0__Impl_in_rule__TreatUndefinedAs__Group_0__08166 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__TreatUndefinedAs__Group_0__1_in_rule__TreatUndefinedAs__Group_0__08169 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TreatUndefinedAs__Group_0__1__Impl_in_rule__TreatUndefinedAs__Group_0__18227 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_rule__TreatUndefinedAs__Group_0__2_in_rule__TreatUndefinedAs__Group_0__18230 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__TreatUndefinedAs__Group_0__1__Impl8258 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TreatUndefinedAs__Group_0__2__Impl_in_rule__TreatUndefinedAs__Group_0__28289 = new BitSet(new long[]{0x0000020000000000L});
    public static final BitSet FOLLOW_rule__TreatUndefinedAs__Group_0__3_in_rule__TreatUndefinedAs__Group_0__28292 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__TreatUndefinedAs__Group_0__2__Impl8320 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TreatUndefinedAs__Group_0__3__Impl_in_rule__TreatUndefinedAs__Group_0__38351 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TreatUndefinedAs__AsEmptyStringAssignment_0_3_in_rule__TreatUndefinedAs__Group_0__3__Impl8378 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TreatUndefinedAs__Group_1__0__Impl_in_rule__TreatUndefinedAs__Group_1__08416 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__TreatUndefinedAs__Group_1__1_in_rule__TreatUndefinedAs__Group_1__08419 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TreatUndefinedAs__Group_1__1__Impl_in_rule__TreatUndefinedAs__Group_1__18477 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_rule__TreatUndefinedAs__Group_1__2_in_rule__TreatUndefinedAs__Group_1__18480 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__TreatUndefinedAs__Group_1__1__Impl8508 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TreatUndefinedAs__Group_1__2__Impl_in_rule__TreatUndefinedAs__Group_1__28539 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
    public static final BitSet FOLLOW_rule__TreatUndefinedAs__Group_1__3_in_rule__TreatUndefinedAs__Group_1__28542 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__TreatUndefinedAs__Group_1__2__Impl8570 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TreatUndefinedAs__Group_1__3__Impl_in_rule__TreatUndefinedAs__Group_1__38601 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TreatUndefinedAs__AsNullAssignment_1_3_in_rule__TreatUndefinedAs__Group_1__3__Impl8628 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AllowAny__Group__0__Impl_in_rule__AllowAny__Group__08666 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__AllowAny__Group__1_in_rule__AllowAny__Group__08669 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AllowAny__Group__1__Impl_in_rule__AllowAny__Group__18727 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__AllowAny__Group__1__Impl8755 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Replaceable__Group__0__Impl_in_rule__Replaceable__Group__08790 = new BitSet(new long[]{0x0000100000000000L});
    public static final BitSet FOLLOW_rule__Replaceable__Group__1_in_rule__Replaceable__Group__08793 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Replaceable__Group__1__Impl_in_rule__Replaceable__Group__18851 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_44_in_rule__Replaceable__Group__1__Impl8879 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Supplemental__Group__0__Impl_in_rule__Supplemental__Group__08914 = new BitSet(new long[]{0x0000200000000000L});
    public static final BitSet FOLLOW_rule__Supplemental__Group__1_in_rule__Supplemental__Group__08917 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Supplemental__Group__1__Impl_in_rule__Supplemental__Group__18975 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__Supplemental__Group__1__Impl9003 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ReplaceableNamedProperties__Group__0__Impl_in_rule__ReplaceableNamedProperties__Group__09038 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_rule__ReplaceableNamedProperties__Group__1_in_rule__ReplaceableNamedProperties__Group__09041 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ReplaceableNamedProperties__Group__1__Impl_in_rule__ReplaceableNamedProperties__Group__19099 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_rule__ReplaceableNamedProperties__Group__1__Impl9127 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ImplementStatement__Group__0__Impl_in_rule__ImplementStatement__Group__09162 = new BitSet(new long[]{0x0000800000000000L});
    public static final BitSet FOLLOW_rule__ImplementStatement__Group__1_in_rule__ImplementStatement__Group__09165 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ImplementStatement__SourceAssignment_0_in_rule__ImplementStatement__Group__0__Impl9192 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ImplementStatement__Group__1__Impl_in_rule__ImplementStatement__Group__19222 = new BitSet(new long[]{0x0088000004000010L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__ImplementStatement__Group__2_in_rule__ImplementStatement__Group__19225 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_47_in_rule__ImplementStatement__Group__1__Impl9253 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ImplementStatement__Group__2__Impl_in_rule__ImplementStatement__Group__29284 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__ImplementStatement__Group__3_in_rule__ImplementStatement__Group__29287 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ImplementStatement__TargetAssignment_2_in_rule__ImplementStatement__Group__2__Impl9314 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ImplementStatement__Group__3__Impl_in_rule__ImplementStatement__Group__39344 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__ImplementStatement__Group__3__Impl9372 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Module__Group__0__Impl_in_rule__Module__Group__09411 = new BitSet(new long[]{0x0089000004000010L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__Module__Group__1_in_rule__Module__Group__09414 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Module__Group_0__0_in_rule__Module__Group__0__Impl9441 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Module__Group__1__Impl_in_rule__Module__Group__19472 = new BitSet(new long[]{0x0088000004000010L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__Module__Group__2_in_rule__Module__Group__19475 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_48_in_rule__Module__Group__1__Impl9503 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Module__Group__2__Impl_in_rule__Module__Group__29534 = new BitSet(new long[]{0x0002000000000000L});
    public static final BitSet FOLLOW_rule__Module__Group__3_in_rule__Module__Group__29537 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Module__NameAssignment_2_in_rule__Module__Group__2__Impl9564 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Module__Group__3__Impl_in_rule__Module__Group__39594 = new BitSet(new long[]{0x0089000004000010L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__Module__Group__4_in_rule__Module__Group__39597 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_49_in_rule__Module__Group__3__Impl9625 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Module__Group__4__Impl_in_rule__Module__Group__49656 = new BitSet(new long[]{0x0004000000000000L});
    public static final BitSet FOLLOW_rule__Module__Group__5_in_rule__Module__Group__49659 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Module__DefinitionsAssignment_4_in_rule__Module__Group__4__Impl9688 = new BitSet(new long[]{0x0089000004000012L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__Module__DefinitionsAssignment_4_in_rule__Module__Group__4__Impl9700 = new BitSet(new long[]{0x0089000004000012L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__Module__Group__5__Impl_in_rule__Module__Group__59733 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__Module__Group__6_in_rule__Module__Group__59736 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_50_in_rule__Module__Group__5__Impl9764 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Module__Group__6__Impl_in_rule__Module__Group__69795 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Module__Group__6__Impl9823 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Module__Group_0__0__Impl_in_rule__Module__Group_0__09868 = new BitSet(new long[]{0x0060000000000000L});
    public static final BitSet FOLLOW_rule__Module__Group_0__1_in_rule__Module__Group_0__09871 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_51_in_rule__Module__Group_0__0__Impl9899 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Module__Group_0__1__Impl_in_rule__Module__Group_0__19930 = new BitSet(new long[]{0x0010000200000000L});
    public static final BitSet FOLLOW_rule__Module__Group_0__2_in_rule__Module__Group_0__19933 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Module__ExtendedAttributesAssignment_0_1_in_rule__Module__Group_0__1__Impl9960 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Module__Group_0__2__Impl_in_rule__Module__Group_0__29990 = new BitSet(new long[]{0x0010000200000000L});
    public static final BitSet FOLLOW_rule__Module__Group_0__3_in_rule__Module__Group_0__29993 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Module__Group_0_2__0_in_rule__Module__Group_0__2__Impl10020 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_rule__Module__Group_0__3__Impl_in_rule__Module__Group_0__310051 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_52_in_rule__Module__Group_0__3__Impl10079 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Module__Group_0_2__0__Impl_in_rule__Module__Group_0_2__010118 = new BitSet(new long[]{0x0060000000000000L});
    public static final BitSet FOLLOW_rule__Module__Group_0_2__1_in_rule__Module__Group_0_2__010121 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__Module__Group_0_2__0__Impl10149 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Module__Group_0_2__1__Impl_in_rule__Module__Group_0_2__110180 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Module__ExtendedAttributesAssignment_0_2_1_in_rule__Module__Group_0_2__1__Impl10207 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Prefix__Group__0__Impl_in_rule__Prefix__Group__010241 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_rule__Prefix__Group__1_in_rule__Prefix__Group__010244 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_53_in_rule__Prefix__Group__0__Impl10272 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Prefix__Group__1__Impl_in_rule__Prefix__Group__110303 = new BitSet(new long[]{0x0088000004000010L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__Prefix__Group__2_in_rule__Prefix__Group__110306 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__Prefix__Group__1__Impl10334 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Prefix__Group__2__Impl_in_rule__Prefix__Group__210365 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Prefix__ValueAssignment_2_in_rule__Prefix__Group__2__Impl10392 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamespaceObject__Group__0__Impl_in_rule__NamespaceObject__Group__010428 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_rule__NamespaceObject__Group__1_in_rule__NamespaceObject__Group__010431 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_54_in_rule__NamespaceObject__Group__0__Impl10459 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NamespaceObject__Group__1__Impl_in_rule__NamespaceObject__Group__110490 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group__0__Impl_in_rule__Interface__Group__010552 = new BitSet(new long[]{0x0088000000000000L});
    public static final BitSet FOLLOW_rule__Interface__Group__1_in_rule__Interface__Group__010555 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_0__0_in_rule__Interface__Group__0__Impl10582 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group__1__Impl_in_rule__Interface__Group__110613 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Interface__Group__2_in_rule__Interface__Group__110616 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_55_in_rule__Interface__Group__1__Impl10644 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group__2__Impl_in_rule__Interface__Group__210675 = new BitSet(new long[]{0x0102000002000000L});
    public static final BitSet FOLLOW_rule__Interface__Group__3_in_rule__Interface__Group__210678 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__NameAssignment_2_in_rule__Interface__Group__2__Impl10705 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group__3__Impl_in_rule__Interface__Group__310735 = new BitSet(new long[]{0x0102000002000000L});
    public static final BitSet FOLLOW_rule__Interface__Group__4_in_rule__Interface__Group__310738 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_3__0_in_rule__Interface__Group__3__Impl10765 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group__4__Impl_in_rule__Interface__Group__410796 = new BitSet(new long[]{0x0102000002000000L});
    public static final BitSet FOLLOW_rule__Interface__Group__5_in_rule__Interface__Group__410799 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_4__0_in_rule__Interface__Group__4__Impl10826 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group__5__Impl_in_rule__Interface__Group__510857 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Interface__Group__5__Impl10885 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_0__0__Impl_in_rule__Interface__Group_0__010928 = new BitSet(new long[]{0x0000607440000800L});
    public static final BitSet FOLLOW_rule__Interface__Group_0__1_in_rule__Interface__Group_0__010931 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_51_in_rule__Interface__Group_0__0__Impl10959 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_0__1__Impl_in_rule__Interface__Group_0__110990 = new BitSet(new long[]{0x0010000200000000L});
    public static final BitSet FOLLOW_rule__Interface__Group_0__2_in_rule__Interface__Group_0__110993 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__ExtendedAttributesAssignment_0_1_in_rule__Interface__Group_0__1__Impl11020 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_0__2__Impl_in_rule__Interface__Group_0__211050 = new BitSet(new long[]{0x0010000200000000L});
    public static final BitSet FOLLOW_rule__Interface__Group_0__3_in_rule__Interface__Group_0__211053 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_0_2__0_in_rule__Interface__Group_0__2__Impl11080 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_0__3__Impl_in_rule__Interface__Group_0__311111 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_52_in_rule__Interface__Group_0__3__Impl11139 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_0_2__0__Impl_in_rule__Interface__Group_0_2__011178 = new BitSet(new long[]{0x0000607440000800L});
    public static final BitSet FOLLOW_rule__Interface__Group_0_2__1_in_rule__Interface__Group_0_2__011181 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__Interface__Group_0_2__0__Impl11209 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_0_2__1__Impl_in_rule__Interface__Group_0_2__111240 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__ExtendedAttributeAssignment_0_2_1_in_rule__Interface__Group_0_2__1__Impl11267 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_3__0__Impl_in_rule__Interface__Group_3__011301 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_rule__Interface__Group_3__1_in_rule__Interface__Group_3__011304 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_3_0__0_in_rule__Interface__Group_3__0__Impl11331 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_3__1__Impl_in_rule__Interface__Group_3__111361 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_3_1__0_in_rule__Interface__Group_3__1__Impl11388 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_3_0__0__Impl_in_rule__Interface__Group_3_0__011423 = new BitSet(new long[]{0x0088000004000010L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__Interface__Group_3_0__1_in_rule__Interface__Group_3_0__011426 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_56_in_rule__Interface__Group_3_0__0__Impl11454 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_3_0__1__Impl_in_rule__Interface__Group_3_0__111485 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__SuperTypeAssignment_3_0_1_in_rule__Interface__Group_3_0__1__Impl11512 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_3_1__0__Impl_in_rule__Interface__Group_3_1__011546 = new BitSet(new long[]{0x0088000004000010L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__Interface__Group_3_1__1_in_rule__Interface__Group_3_1__011549 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__Interface__Group_3_1__0__Impl11577 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_3_1__1__Impl_in_rule__Interface__Group_3_1__111608 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__SuperTypeAssignment_3_1_1_in_rule__Interface__Group_3_1__1__Impl11635 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_4__0__Impl_in_rule__Interface__Group_4__011669 = new BitSet(new long[]{0xFC8C00000CFFF010L,0x0000000000003099L});
    public static final BitSet FOLLOW_rule__Interface__Group_4__1_in_rule__Interface__Group_4__011672 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_49_in_rule__Interface__Group_4__0__Impl11700 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group_4__1__Impl_in_rule__Interface__Group_4__111731 = new BitSet(new long[]{0xFC8C00000CFFF010L,0x0000000000003099L});
    public static final BitSet FOLLOW_rule__Interface__Group_4__2_in_rule__Interface__Group_4__111734 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__MembersAssignment_4_1_in_rule__Interface__Group_4__1__Impl11761 = new BitSet(new long[]{0xFC8800000CFFF012L,0x0000000000003099L});
    public static final BitSet FOLLOW_rule__Interface__Group_4__2__Impl_in_rule__Interface__Group_4__211792 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_50_in_rule__Interface__Group_4__2__Impl11820 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__0__Impl_in_rule__Operation__Group__011857 = new BitSet(new long[]{0xFC8800000CFFF010L,0x0000000000003099L});
    public static final BitSet FOLLOW_rule__Operation__Group__1_in_rule__Operation__Group__011860 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_0__0_in_rule__Operation__Group__0__Impl11887 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__1__Impl_in_rule__Operation__Group__111918 = new BitSet(new long[]{0xFC8800000CFFF010L,0x0000000000003099L});
    public static final BitSet FOLLOW_rule__Operation__Group__2_in_rule__Operation__Group__111921 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__StringifierAssignment_1_in_rule__Operation__Group__1__Impl11948 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__2__Impl_in_rule__Operation__Group__211979 = new BitSet(new long[]{0xFC8800000CFFF010L,0x0000000000003099L});
    public static final BitSet FOLLOW_rule__Operation__Group__3_in_rule__Operation__Group__211982 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__OmittableAssignment_2_in_rule__Operation__Group__2__Impl12009 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__3__Impl_in_rule__Operation__Group__312040 = new BitSet(new long[]{0xFC8800000CFFF010L,0x0000000000003099L});
    public static final BitSet FOLLOW_rule__Operation__Group__4_in_rule__Operation__Group__312043 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__SpecialsAssignment_3_in_rule__Operation__Group__3__Impl12070 = new BitSet(new long[]{0x7C00000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__4__Impl_in_rule__Operation__Group__412101 = new BitSet(new long[]{0x0000000080000010L});
    public static final BitSet FOLLOW_rule__Operation__Group__5_in_rule__Operation__Group__412104 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__ReturnAssignment_4_in_rule__Operation__Group__4__Impl12131 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__5__Impl_in_rule__Operation__Group__512161 = new BitSet(new long[]{0x0000000080000010L});
    public static final BitSet FOLLOW_rule__Operation__Group__6_in_rule__Operation__Group__512164 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__NameAssignment_5_in_rule__Operation__Group__5__Impl12191 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__6__Impl_in_rule__Operation__Group__612222 = new BitSet(new long[]{0x008800010CFFF010L,0x000000000000C088L});
    public static final BitSet FOLLOW_rule__Operation__Group__7_in_rule__Operation__Group__612225 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_rule__Operation__Group__6__Impl12253 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__7__Impl_in_rule__Operation__Group__712284 = new BitSet(new long[]{0x008800010CFFF010L,0x000000000000C088L});
    public static final BitSet FOLLOW_rule__Operation__Group__8_in_rule__Operation__Group__712287 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_7__0_in_rule__Operation__Group__7__Impl12314 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__8__Impl_in_rule__Operation__Group__812345 = new BitSet(new long[]{0x0200000002000000L});
    public static final BitSet FOLLOW_rule__Operation__Group__9_in_rule__Operation__Group__812348 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_32_in_rule__Operation__Group__8__Impl12376 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__9__Impl_in_rule__Operation__Group__912407 = new BitSet(new long[]{0x0200000002000000L});
    public static final BitSet FOLLOW_rule__Operation__Group__10_in_rule__Operation__Group__912410 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_9__0_in_rule__Operation__Group__9__Impl12437 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__10__Impl_in_rule__Operation__Group__1012468 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Operation__Group__10__Impl12496 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_0__0__Impl_in_rule__Operation__Group_0__012549 = new BitSet(new long[]{0x0000050000000000L});
    public static final BitSet FOLLOW_rule__Operation__Group_0__1_in_rule__Operation__Group_0__012552 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_51_in_rule__Operation__Group_0__0__Impl12580 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_0__1__Impl_in_rule__Operation__Group_0__112611 = new BitSet(new long[]{0x0010000200000000L});
    public static final BitSet FOLLOW_rule__Operation__Group_0__2_in_rule__Operation__Group_0__112614 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__ExtendedAttributesAssignment_0_1_in_rule__Operation__Group_0__1__Impl12641 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_0__2__Impl_in_rule__Operation__Group_0__212671 = new BitSet(new long[]{0x0010000200000000L});
    public static final BitSet FOLLOW_rule__Operation__Group_0__3_in_rule__Operation__Group_0__212674 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_0_2__0_in_rule__Operation__Group_0__2__Impl12701 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_0__3__Impl_in_rule__Operation__Group_0__312732 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_52_in_rule__Operation__Group_0__3__Impl12760 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_0_2__0__Impl_in_rule__Operation__Group_0_2__012799 = new BitSet(new long[]{0x0000050000000000L});
    public static final BitSet FOLLOW_rule__Operation__Group_0_2__1_in_rule__Operation__Group_0_2__012802 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__Operation__Group_0_2__0__Impl12830 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_0_2__1__Impl_in_rule__Operation__Group_0_2__112861 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__ExtendedAttributesAssignment_0_2_1_in_rule__Operation__Group_0_2__1__Impl12888 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_7__0__Impl_in_rule__Operation__Group_7__012922 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_rule__Operation__Group_7__1_in_rule__Operation__Group_7__012925 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__ArgumentsAssignment_7_0_in_rule__Operation__Group_7__0__Impl12952 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_7__1__Impl_in_rule__Operation__Group_7__112982 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_7_1__0_in_rule__Operation__Group_7__1__Impl13009 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_7_1__0__Impl_in_rule__Operation__Group_7_1__013044 = new BitSet(new long[]{0x008800000CFFF010L,0x000000000000C088L});
    public static final BitSet FOLLOW_rule__Operation__Group_7_1__1_in_rule__Operation__Group_7_1__013047 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__Operation__Group_7_1__0__Impl13075 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_7_1__1__Impl_in_rule__Operation__Group_7_1__113106 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__ArgumentsAssignment_7_1_1_in_rule__Operation__Group_7_1__1__Impl13133 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_9__0__Impl_in_rule__Operation__Group_9__013167 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_rule__Operation__Group_9__1_in_rule__Operation__Group_9__013170 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_57_in_rule__Operation__Group_9__0__Impl13198 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_9__1__Impl_in_rule__Operation__Group_9__113229 = new BitSet(new long[]{0x0088000004000010L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__Operation__Group_9__2_in_rule__Operation__Group_9__113232 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_rule__Operation__Group_9__1__Impl13260 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_9__2__Impl_in_rule__Operation__Group_9__213291 = new BitSet(new long[]{0x0000000300000000L});
    public static final BitSet FOLLOW_rule__Operation__Group_9__3_in_rule__Operation__Group_9__213294 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__RaisesAssignment_9_2_in_rule__Operation__Group_9__2__Impl13321 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_9__3__Impl_in_rule__Operation__Group_9__313351 = new BitSet(new long[]{0x0000000300000000L});
    public static final BitSet FOLLOW_rule__Operation__Group_9__4_in_rule__Operation__Group_9__313354 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_9_3__0_in_rule__Operation__Group_9__3__Impl13381 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_9__4__Impl_in_rule__Operation__Group_9__413412 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_32_in_rule__Operation__Group_9__4__Impl13440 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_9_3__0__Impl_in_rule__Operation__Group_9_3__013481 = new BitSet(new long[]{0x0088000004000010L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__Operation__Group_9_3__1_in_rule__Operation__Group_9_3__013484 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__Operation__Group_9_3__0__Impl13512 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_9_3__1__Impl_in_rule__Operation__Group_9_3__113543 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__RaisesAssignment_9_3_1_in_rule__Operation__Group_9_3__1__Impl13570 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_0__0__Impl_in_rule__OperationSpecial__Group_0__013604 = new BitSet(new long[]{0x0400000000000000L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_0__1_in_rule__OperationSpecial__Group_0__013607 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_0__1__Impl_in_rule__OperationSpecial__Group_0__113665 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_58_in_rule__OperationSpecial__Group_0__1__Impl13693 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_1__0__Impl_in_rule__OperationSpecial__Group_1__013728 = new BitSet(new long[]{0x0800000000000000L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_1__1_in_rule__OperationSpecial__Group_1__013731 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_1__1__Impl_in_rule__OperationSpecial__Group_1__113789 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_59_in_rule__OperationSpecial__Group_1__1__Impl13817 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_2__0__Impl_in_rule__OperationSpecial__Group_2__013852 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_2__1_in_rule__OperationSpecial__Group_2__013855 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_2__1__Impl_in_rule__OperationSpecial__Group_2__113913 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_60_in_rule__OperationSpecial__Group_2__1__Impl13941 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_3__0__Impl_in_rule__OperationSpecial__Group_3__013976 = new BitSet(new long[]{0x2000000000000000L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_3__1_in_rule__OperationSpecial__Group_3__013979 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_3__1__Impl_in_rule__OperationSpecial__Group_3__114037 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_61_in_rule__OperationSpecial__Group_3__1__Impl14065 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_4__0__Impl_in_rule__OperationSpecial__Group_4__014100 = new BitSet(new long[]{0x7C00000000000000L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_4__1_in_rule__OperationSpecial__Group_4__014103 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__OperationSpecial__Group_4__1__Impl_in_rule__OperationSpecial__Group_4__114161 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_62_in_rule__OperationSpecial__Group_4__1__Impl14189 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__0__Impl_in_rule__Attribute__Group__014224 = new BitSet(new long[]{0x8008000000000000L,0x0000000000001001L});
    public static final BitSet FOLLOW_rule__Attribute__Group__1_in_rule__Attribute__Group__014227 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_0__0_in_rule__Attribute__Group__0__Impl14254 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__1__Impl_in_rule__Attribute__Group__114285 = new BitSet(new long[]{0x8008000000000000L,0x0000000000001001L});
    public static final BitSet FOLLOW_rule__Attribute__Group__2_in_rule__Attribute__Group__114288 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__StringifierAssignment_1_in_rule__Attribute__Group__1__Impl14315 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__2__Impl_in_rule__Attribute__Group__214346 = new BitSet(new long[]{0x8008000000000000L,0x0000000000001001L});
    public static final BitSet FOLLOW_rule__Attribute__Group__3_in_rule__Attribute__Group__214349 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_63_in_rule__Attribute__Group__2__Impl14378 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__3__Impl_in_rule__Attribute__Group__314411 = new BitSet(new long[]{0x008800000CFFF010L,0x0000000000000088L});
    public static final BitSet FOLLOW_rule__Attribute__Group__4_in_rule__Attribute__Group__314414 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_64_in_rule__Attribute__Group__3__Impl14442 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__4__Impl_in_rule__Attribute__Group__414473 = new BitSet(new long[]{0x0088000004000010L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__Attribute__Group__5_in_rule__Attribute__Group__414476 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__TypeAssignment_4_in_rule__Attribute__Group__4__Impl14503 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__5__Impl_in_rule__Attribute__Group__514533 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000006L});
    public static final BitSet FOLLOW_rule__Attribute__Group__6_in_rule__Attribute__Group__514536 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__NameAssignment_5_in_rule__Attribute__Group__5__Impl14563 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__6__Impl_in_rule__Attribute__Group__614593 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__Attribute__Group__7_in_rule__Attribute__Group__614596 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6__0_in_rule__Attribute__Group__6__Impl14623 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__7__Impl_in_rule__Attribute__Group__714653 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Attribute__Group__7__Impl14681 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_0__0__Impl_in_rule__Attribute__Group_0__014728 = new BitSet(new long[]{0x0000158000000000L});
    public static final BitSet FOLLOW_rule__Attribute__Group_0__1_in_rule__Attribute__Group_0__014731 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_51_in_rule__Attribute__Group_0__0__Impl14759 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_0__1__Impl_in_rule__Attribute__Group_0__114790 = new BitSet(new long[]{0x0010000200000000L});
    public static final BitSet FOLLOW_rule__Attribute__Group_0__2_in_rule__Attribute__Group_0__114793 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__ExtendedAttributesAssignment_0_1_in_rule__Attribute__Group_0__1__Impl14820 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_0__2__Impl_in_rule__Attribute__Group_0__214850 = new BitSet(new long[]{0x0010000200000000L});
    public static final BitSet FOLLOW_rule__Attribute__Group_0__3_in_rule__Attribute__Group_0__214853 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_0_2__0_in_rule__Attribute__Group_0__2__Impl14880 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_0__3__Impl_in_rule__Attribute__Group_0__314911 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_52_in_rule__Attribute__Group_0__3__Impl14939 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_0_2__0__Impl_in_rule__Attribute__Group_0_2__014978 = new BitSet(new long[]{0x0000158000000000L});
    public static final BitSet FOLLOW_rule__Attribute__Group_0_2__1_in_rule__Attribute__Group_0_2__014981 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__Attribute__Group_0_2__0__Impl15009 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_0_2__1__Impl_in_rule__Attribute__Group_0_2__115040 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__ExtendedAttributesAssignment_0_2_1_in_rule__Attribute__Group_0_2__1__Impl15067 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6__0__Impl_in_rule__Attribute__Group_6__015101 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000006L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6__1_in_rule__Attribute__Group_6__015104 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_0__0_in_rule__Attribute__Group_6__0__Impl15131 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6__1__Impl_in_rule__Attribute__Group_6__115162 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_1__0_in_rule__Attribute__Group_6__1__Impl15189 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_0__0__Impl_in_rule__Attribute__Group_6_0__015224 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_0__1_in_rule__Attribute__Group_6_0__015227 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_65_in_rule__Attribute__Group_6_0__0__Impl15255 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_0__1__Impl_in_rule__Attribute__Group_6_0__115286 = new BitSet(new long[]{0x0088000004000010L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_0__2_in_rule__Attribute__Group_6_0__115289 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_rule__Attribute__Group_6_0__1__Impl15317 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_0__2__Impl_in_rule__Attribute__Group_6_0__215348 = new BitSet(new long[]{0x0000000300000000L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_0__3_in_rule__Attribute__Group_6_0__215351 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__GetRaisesAssignment_6_0_2_in_rule__Attribute__Group_6_0__2__Impl15378 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_0__3__Impl_in_rule__Attribute__Group_6_0__315408 = new BitSet(new long[]{0x0000000300000000L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_0__4_in_rule__Attribute__Group_6_0__315411 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_0_3__0_in_rule__Attribute__Group_6_0__3__Impl15438 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_0__4__Impl_in_rule__Attribute__Group_6_0__415469 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_32_in_rule__Attribute__Group_6_0__4__Impl15497 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_0_3__0__Impl_in_rule__Attribute__Group_6_0_3__015538 = new BitSet(new long[]{0x0088000004000010L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_0_3__1_in_rule__Attribute__Group_6_0_3__015541 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__Attribute__Group_6_0_3__0__Impl15569 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_0_3__1__Impl_in_rule__Attribute__Group_6_0_3__115600 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__GetRaisesAssignment_6_0_3_1_in_rule__Attribute__Group_6_0_3__1__Impl15627 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_1__0__Impl_in_rule__Attribute__Group_6_1__015661 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_1__1_in_rule__Attribute__Group_6_1__015664 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_66_in_rule__Attribute__Group_6_1__0__Impl15692 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_1__1__Impl_in_rule__Attribute__Group_6_1__115723 = new BitSet(new long[]{0x0088000004000010L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_1__2_in_rule__Attribute__Group_6_1__115726 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_rule__Attribute__Group_6_1__1__Impl15754 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_1__2__Impl_in_rule__Attribute__Group_6_1__215785 = new BitSet(new long[]{0x0000000300000000L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_1__3_in_rule__Attribute__Group_6_1__215788 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__SetRaisesAssignment_6_1_2_in_rule__Attribute__Group_6_1__2__Impl15815 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_1__3__Impl_in_rule__Attribute__Group_6_1__315845 = new BitSet(new long[]{0x0000000300000000L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_1__4_in_rule__Attribute__Group_6_1__315848 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_1_3__0_in_rule__Attribute__Group_6_1__3__Impl15875 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_1__4__Impl_in_rule__Attribute__Group_6_1__415906 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_32_in_rule__Attribute__Group_6_1__4__Impl15934 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_1_3__0__Impl_in_rule__Attribute__Group_6_1_3__015975 = new BitSet(new long[]{0x0088000004000010L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_1_3__1_in_rule__Attribute__Group_6_1_3__015978 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__Attribute__Group_6_1_3__0__Impl16006 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group_6_1_3__1__Impl_in_rule__Attribute__Group_6_1_3__116037 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__SetRaisesAssignment_6_1_3_1_in_rule__Attribute__Group_6_1_3__1__Impl16064 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exception__Group__0__Impl_in_rule__Exception__Group__016098 = new BitSet(new long[]{0x0008000000000000L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__Exception__Group__1_in_rule__Exception__Group__016101 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exception__Group_0__0_in_rule__Exception__Group__0__Impl16128 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exception__Group__1__Impl_in_rule__Exception__Group__116159 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Exception__Group__2_in_rule__Exception__Group__116162 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_67_in_rule__Exception__Group__1__Impl16190 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exception__Group__2__Impl_in_rule__Exception__Group__216221 = new BitSet(new long[]{0x0002000000000000L});
    public static final BitSet FOLLOW_rule__Exception__Group__3_in_rule__Exception__Group__216224 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exception__NameAssignment_2_in_rule__Exception__Group__2__Impl16251 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exception__Group__3__Impl_in_rule__Exception__Group__316281 = new BitSet(new long[]{0x008C00000CFFF010L,0x0000000000000098L});
    public static final BitSet FOLLOW_rule__Exception__Group__4_in_rule__Exception__Group__316284 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_49_in_rule__Exception__Group__3__Impl16312 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exception__Group__4__Impl_in_rule__Exception__Group__416343 = new BitSet(new long[]{0x008C00000CFFF010L,0x0000000000000098L});
    public static final BitSet FOLLOW_rule__Exception__Group__5_in_rule__Exception__Group__416346 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exception__MembersAssignment_4_in_rule__Exception__Group__4__Impl16373 = new BitSet(new long[]{0x008800000CFFF012L,0x0000000000000098L});
    public static final BitSet FOLLOW_rule__Exception__Group__5__Impl_in_rule__Exception__Group__516404 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__Exception__Group__6_in_rule__Exception__Group__516407 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_50_in_rule__Exception__Group__5__Impl16435 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exception__Group__6__Impl_in_rule__Exception__Group__616466 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Exception__Group__6__Impl16494 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exception__Group_0__0__Impl_in_rule__Exception__Group_0__016539 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__Exception__Group_0__1_in_rule__Exception__Group_0__016542 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_51_in_rule__Exception__Group_0__0__Impl16570 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exception__Group_0__1__Impl_in_rule__Exception__Group_0__116601 = new BitSet(new long[]{0x0010000200000000L});
    public static final BitSet FOLLOW_rule__Exception__Group_0__2_in_rule__Exception__Group_0__116604 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exception__ExtendedAttributesAssignment_0_1_in_rule__Exception__Group_0__1__Impl16631 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exception__Group_0__2__Impl_in_rule__Exception__Group_0__216661 = new BitSet(new long[]{0x0010000200000000L});
    public static final BitSet FOLLOW_rule__Exception__Group_0__3_in_rule__Exception__Group_0__216664 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exception__Group_0_2__0_in_rule__Exception__Group_0__2__Impl16691 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_rule__Exception__Group_0__3__Impl_in_rule__Exception__Group_0__316722 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_52_in_rule__Exception__Group_0__3__Impl16750 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exception__Group_0_2__0__Impl_in_rule__Exception__Group_0_2__016789 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__Exception__Group_0_2__1_in_rule__Exception__Group_0_2__016792 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__Exception__Group_0_2__0__Impl16820 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exception__Group_0_2__1__Impl_in_rule__Exception__Group_0_2__116851 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Exception__ExtendedAttributesAssignment_0_2_1_in_rule__Exception__Group_0_2__1__Impl16878 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ExceptionField__Group__0__Impl_in_rule__ExceptionField__Group__016912 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__ExceptionField__Group__1_in_rule__ExceptionField__Group__016915 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ExceptionField__TypeAssignment_0_in_rule__ExceptionField__Group__0__Impl16942 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ExceptionField__Group__1__Impl_in_rule__ExceptionField__Group__116972 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__ExceptionField__Group__2_in_rule__ExceptionField__Group__116975 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ExceptionField__NameAssignment_1_in_rule__ExceptionField__Group__1__Impl17002 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ExceptionField__Group__2__Impl_in_rule__ExceptionField__Group__217032 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__ExceptionField__Group__2__Impl17060 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__Group__0__Impl_in_rule__Argument__Group__017097 = new BitSet(new long[]{0x008800000CFFF010L,0x000000000000C088L});
    public static final BitSet FOLLOW_rule__Argument__Group__1_in_rule__Argument__Group__017100 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__Group_0__0_in_rule__Argument__Group__0__Impl17127 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__Group__1__Impl_in_rule__Argument__Group__117158 = new BitSet(new long[]{0x008800000CFFF010L,0x000000000000C088L});
    public static final BitSet FOLLOW_rule__Argument__Group__2_in_rule__Argument__Group__117161 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__InAssignment_1_in_rule__Argument__Group__1__Impl17188 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__Group__2__Impl_in_rule__Argument__Group__217219 = new BitSet(new long[]{0x008800000CFFF010L,0x000000000000C088L});
    public static final BitSet FOLLOW_rule__Argument__Group__3_in_rule__Argument__Group__217222 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__OptionalAssignment_2_in_rule__Argument__Group__2__Impl17249 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__Group__3__Impl_in_rule__Argument__Group__317280 = new BitSet(new long[]{0x0000000000000010L,0x0000000000010000L});
    public static final BitSet FOLLOW_rule__Argument__Group__4_in_rule__Argument__Group__317283 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__TypeAssignment_3_in_rule__Argument__Group__3__Impl17310 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__Group__4__Impl_in_rule__Argument__Group__417340 = new BitSet(new long[]{0x0000000000000010L,0x0000000000010000L});
    public static final BitSet FOLLOW_rule__Argument__Group__5_in_rule__Argument__Group__417343 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__EllipsisAssignment_4_in_rule__Argument__Group__4__Impl17370 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__Group__5__Impl_in_rule__Argument__Group__517401 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__NameAssignment_5_in_rule__Argument__Group__5__Impl17428 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__Group_0__0__Impl_in_rule__Argument__Group_0__017470 = new BitSet(new long[]{0x00000D0000000000L});
    public static final BitSet FOLLOW_rule__Argument__Group_0__1_in_rule__Argument__Group_0__017473 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_51_in_rule__Argument__Group_0__0__Impl17501 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__Group_0__1__Impl_in_rule__Argument__Group_0__117532 = new BitSet(new long[]{0x0010000200000000L});
    public static final BitSet FOLLOW_rule__Argument__Group_0__2_in_rule__Argument__Group_0__117535 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__ExtendedAttributesAssignment_0_1_in_rule__Argument__Group_0__1__Impl17562 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__Group_0__2__Impl_in_rule__Argument__Group_0__217592 = new BitSet(new long[]{0x0010000200000000L});
    public static final BitSet FOLLOW_rule__Argument__Group_0__3_in_rule__Argument__Group_0__217595 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__Group_0_2__0_in_rule__Argument__Group_0__2__Impl17622 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_rule__Argument__Group_0__3__Impl_in_rule__Argument__Group_0__317653 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_52_in_rule__Argument__Group_0__3__Impl17681 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__Group_0_2__0__Impl_in_rule__Argument__Group_0_2__017720 = new BitSet(new long[]{0x00000D0000000000L});
    public static final BitSet FOLLOW_rule__Argument__Group_0_2__1_in_rule__Argument__Group_0_2__017723 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__Argument__Group_0_2__0__Impl17751 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__Group_0_2__1__Impl_in_rule__Argument__Group_0_2__117782 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Argument__ExtendedAttributesAssignment_0_2_1_in_rule__Argument__Group_0_2__1__Impl17809 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Const__Group__0__Impl_in_rule__Const__Group__017843 = new BitSet(new long[]{0x008800000CFFF010L,0x0000000000000088L});
    public static final BitSet FOLLOW_rule__Const__Group__1_in_rule__Const__Group__017846 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_68_in_rule__Const__Group__0__Impl17874 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Const__Group__1__Impl_in_rule__Const__Group__117905 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Const__Group__2_in_rule__Const__Group__117908 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Const__TypeAssignment_1_in_rule__Const__Group__1__Impl17935 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Const__Group__2__Impl_in_rule__Const__Group__217965 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_rule__Const__Group__3_in_rule__Const__Group__217968 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Const__NameAssignment_2_in_rule__Const__Group__2__Impl17995 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Const__Group__3__Impl_in_rule__Const__Group__318025 = new BitSet(new long[]{0x0000000000000060L,0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Const__Group__4_in_rule__Const__Group__318028 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__Const__Group__3__Impl18056 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Const__Group__4__Impl_in_rule__Const__Group__418087 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__Const__Group__5_in_rule__Const__Group__418090 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Const__ExprAssignment_4_in_rule__Const__Group__4__Impl18117 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Const__Group__5__Impl_in_rule__Const__Group__518147 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Const__Group__5__Impl18175 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ConstExpr__Group_0__0__Impl_in_rule__ConstExpr__Group_0__018218 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__ConstExpr__Group_0__1_in_rule__ConstExpr__Group_0__018221 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ConstExpr__Group_0__1__Impl_in_rule__ConstExpr__Group_0__118279 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__ConstExpr__Group_0__1__Impl18306 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ConstExpr__Group_1__0__Impl_in_rule__ConstExpr__Group_1__018339 = new BitSet(new long[]{0x0000000000000060L,0x0000000000000020L});
    public static final BitSet FOLLOW_rule__ConstExpr__Group_1__1_in_rule__ConstExpr__Group_1__018342 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ConstExpr__Group_1__1__Impl_in_rule__ConstExpr__Group_1__118400 = new BitSet(new long[]{0x0000000000000060L,0x0000000000000020L});
    public static final BitSet FOLLOW_rule__ConstExpr__Group_1__2_in_rule__ConstExpr__Group_1__118403 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_69_in_rule__ConstExpr__Group_1__1__Impl18432 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ConstExpr__Group_1__2__Impl_in_rule__ConstExpr__Group_1__218465 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_INT_in_rule__ConstExpr__Group_1__2__Impl18492 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleImport_in_rule__IDLDefinitions__ImportsAssignment_018532 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAbstractDefinitions_in_rule__IDLDefinitions__DefinitionsAssignment_118563 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Import__ImportURIAssignment_118594 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeRef_in_rule__TypeDef__TypeAssignment_118625 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__TypeDef__NameAssignment_218656 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_70_in_rule__TypeRef__IsArrayAssignment_0_118692 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_70_in_rule__TypeRef__IsArrayAssignment_1_118736 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_70_in_rule__TypeRef__IsArrayAssignment_2_118780 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleScopedName_in_rule__UserTypeRef__TypeAssignment18823 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_71_in_rule__PrimitiveTypeRef__UnsignedAssignment_018863 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PrimitiveTypeRef__NameAlternatives_1_0_in_rule__PrimitiveTypeRef__NameAssignment_118902 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_72_in_rule__PrimitiveTypeRef__NullableAssignment_218940 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeRef_in_rule__SequenceType__TypeAssignment_118979 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_72_in_rule__SequenceType__NullableAssignment_319015 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArgument_in_rule__Constructor__ArgumentsAssignment_2_119055 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArgument_in_rule__Constructor__ArgumentsAssignment_2_2_119086 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__NamedConstructor__NameAssignment_319117 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArgument_in_rule__NamedConstructor__ArgumentsAssignment_4_1_019148 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArgument_in_rule__NamedConstructor__ArgumentsAssignment_4_1_1_119179 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_73_in_rule__Callback__FunctionOnlyAssignment_1_219215 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_74_in_rule__Callback__PropertyOnlyAssignment_2_219259 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__PutForwards__TargetAssignment_219302 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_41_in_rule__TreatUndefinedAs__AsEmptyStringAssignment_0_319342 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_75_in_rule__TreatUndefinedAs__AsNullAssignment_1_319386 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleScopedName_in_rule__ImplementStatement__SourceAssignment_019429 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleScopedName_in_rule__ImplementStatement__TargetAssignment_219468 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleModuleExtendedAttribute_in_rule__Module__ExtendedAttributesAssignment_0_119503 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleModuleExtendedAttribute_in_rule__Module__ExtendedAttributesAssignment_0_2_119534 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleScopedName_in_rule__Module__NameAssignment_219565 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAbstractDefinitions_in_rule__Module__DefinitionsAssignment_419596 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleScopedName_in_rule__Prefix__ValueAssignment_219627 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleInterfaceExtendedAttribute_in_rule__Interface__ExtendedAttributesAssignment_0_119658 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleInterfaceExtendedAttribute_in_rule__Interface__ExtendedAttributeAssignment_0_2_119689 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Interface__NameAssignment_219720 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleScopedName_in_rule__Interface__SuperTypeAssignment_3_0_119755 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleScopedName_in_rule__Interface__SuperTypeAssignment_3_1_119794 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleInterfaceMember_in_rule__Interface__MembersAssignment_4_119829 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleOperationExtendedAttribute_in_rule__Operation__ExtendedAttributesAssignment_0_119860 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleOperationExtendedAttribute_in_rule__Operation__ExtendedAttributesAssignment_0_2_119891 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_76_in_rule__Operation__StringifierAssignment_119927 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_77_in_rule__Operation__OmittableAssignment_219971 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleOperationSpecial_in_rule__Operation__SpecialsAssignment_320010 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeRef_in_rule__Operation__ReturnAssignment_420041 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Operation__NameAssignment_520072 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArgument_in_rule__Operation__ArgumentsAssignment_7_020103 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArgument_in_rule__Operation__ArgumentsAssignment_7_1_120134 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleScopedName_in_rule__Operation__RaisesAssignment_9_220169 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleScopedName_in_rule__Operation__RaisesAssignment_9_3_120208 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAttributeExtendedAttribute_in_rule__Attribute__ExtendedAttributesAssignment_0_120243 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAttributeExtendedAttribute_in_rule__Attribute__ExtendedAttributesAssignment_0_2_120274 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_76_in_rule__Attribute__StringifierAssignment_120310 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeRef_in_rule__Attribute__TypeAssignment_420349 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleScopedName_in_rule__Attribute__NameAssignment_520380 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleScopedName_in_rule__Attribute__GetRaisesAssignment_6_0_220415 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleScopedName_in_rule__Attribute__GetRaisesAssignment_6_0_3_120454 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleScopedName_in_rule__Attribute__SetRaisesAssignment_6_1_220493 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleScopedName_in_rule__Attribute__SetRaisesAssignment_6_1_3_120532 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExceptionExtendedAttribute_in_rule__Exception__ExtendedAttributesAssignment_0_120567 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExceptionExtendedAttribute_in_rule__Exception__ExtendedAttributesAssignment_0_2_120598 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Exception__NameAssignment_220629 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExceptionMember_in_rule__Exception__MembersAssignment_420660 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeRef_in_rule__ExceptionField__TypeAssignment_020691 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__ExceptionField__NameAssignment_120722 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArgumentExtendedAttribute_in_rule__Argument__ExtendedAttributesAssignment_0_120753 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArgumentExtendedAttribute_in_rule__Argument__ExtendedAttributesAssignment_0_2_120784 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_78_in_rule__Argument__InAssignment_120820 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_79_in_rule__Argument__OptionalAssignment_220864 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeRef_in_rule__Argument__TypeAssignment_320903 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_80_in_rule__Argument__EllipsisAssignment_420939 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Argument__NameAssignment_520978 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeRef_in_rule__Const__TypeAssignment_121009 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Const__NameAssignment_221040 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleConstExpr_in_rule__Const__ExprAssignment_421071 = new BitSet(new long[]{0x0000000000000002L});

}